LAMP
LAMP 是一种网站技术,可以实现动态的网站页面部署。
1. LAMP概述
1 .1构成
-
Linux:
- 简介: Linux 是一种开源的操作系统,以其稳定性和安全性而著称。在 LAMP 堆栈中,它作为服务器操作系统运行。
- 作用: 为应用程序提供一个稳定、安全的运行环境。
-
Apache:
- 简介: Apache 是一个广泛使用的开源 Web 服务器软件,可以在 Linux 上运行。
- 作用: 处理来自客户端(如浏览器)的 HTTP 请求,并将页面内容发送回客户端。
-
MySQL:
- 简介: MySQL 是一个开源关系型数据库管理系统,用于存储网站的数据。
- 作用: 管理网站的数据,包括用户信息、内容和其他重要数据。
-
PHP:
- 简介: PHP 是一种服务器端脚本语言,用于生成动态网页内容。
- 作用: 处理业务逻辑,与数据库交互,并生成 HTML 页面发送给客户端。
1 .2 LAMP优势
- 开源软件: 所有组件都是免费的开源软件,降低了开发成本。
- 社区支持: 拥有庞大的用户社区,可以找到丰富的资源和支持。
- 稳定性和安全性: 经过多年发展,LAMP 堆栈被认为是稳定且安全的选择。
2. 环境搭建
2 .1 Linux安装
这里安装的CentOS7作为服务器操作系统。
这里就不过多阐述了。
2 .2Apache HTTPD配置
配置文件的位置:
# 服务目录
/etc/httpd# 主配置文件
/etc/httpd/conf/httpd.conf# 虚拟主机的配置文件目录
/etc/httpd/conf.d# 基于用户的配置文件
/etc/httpd/conf.d/userdir.conf# 日志文件目录
/etc/httpd/logs# 默认的网站数据目录
/var/www/html
2 . 2 .1 安装 Apache 服务器
# 安装Apache httpd服务
yum install -y http
# 关闭防火墙
systemctl stop firewalled
# 启动Apache服务
systemctl start httpd.service
# 设置Apache服务开机自启动
systemctl enable httpd.service
# 查看Apache服务状态
systemctl status httpd.service
# 查看端口信息
netstat -anptl
可以用浏览器访问服务器127.0.0.1
本地80
端口,如果启动,显示如下页面。
2 . 2 .2 主配置文件
配置文件路径:
ls /etc/httpd/conf/httpd.conf
配置文件中的关键点:
配置 | 说明 |
---|---|
Listen 80 | 监听端口 |
DocumentRoot “/var/www/html” | Web根目录 用于存放Web资源 |
Include conf.modules.d/ *.conf IncludeOptional conf.d/ *.conf | 扩展配置文件路径 |
2 .3 MySQL安装部署
2 . 3 .1 安装MySQL服务
使用yum安装MySQL相关服务:
yum install mariadb mariadb-server mariadb-libs mariadb-devel -y
启动MySQL服务相关:
# 启动数据库服务
systemctl start mariadb.service
# 设置数据库开机自启动
systemctl enable mariadb.service
# 查看服务状态
systemctl status mariadb.service
2 . 3 .2 MySQL相关配置
MySQL相关安全配置可以查看文章:[Linux安全运维] MySQL 数据库安全配置
2 .4 PHP部署
2 . 4 .1 安装PHP服务
安装php及其相关组件。
yum install php php-mysql php-mbstring -y
查看php版本:
php -v
2 . 4 .2 PHP 配置文件
Apache HTTPD需要与PHP关联配置文件:/etc/httpd/conf.d/php.conf
PHP配置文件路径:/etc/php.ini
2 . 4 .3 phpinfo
我们可以写一个phpinfo.php
文件。
# 在 /var/www/httpd/ 下创建一个phpinfo.php文件
touch /var/www/httpd/phpinfo.php
vim /var/www/httpd/phpinfo.php
接着,我们将127.0.0.1:80
的欢迎首页改为我们编写的phpinfo.php
。
# 先将原来的首页进行备份
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
# 重启Apache服务
systemctl restart httpd
访问127.0.0.1:80
:
2 . 4 .4 phpMyAdmin
phpmyadmin 是一个基于php实现的Mysql图形管理工具。
将压缩包解压到Web根目录(/var/www/html/
)下
tar xf Desktop/phpMyAdmin-4.0.10.10-all-languages.tar.gz -C /var/www/html/
访问phpmyadmin.php:
如果可以正常运行,则说明LAMP平台就没有什么问题了。
3. LAMP架设网站
3 .1 上传网站源代码
如果我们想要新增网站源代码,可以将我们写好的网页复制到Web根目录(/var/www/html/
)以实现网站源代码的上传
例如:
我想要将cms
这个网站上传到httpd服务器上:
因为我这里的网站是写好的压缩包,所以我直接将它解压到Web根目录中。
unzip Desktop/cms.zip -d /var/www/html/
我们可以访问一下网站:127.0.0.1/cms/
因为我们没有配置数据库,所以还需要去修改一下数据库配置来适配。
3 .2 数据库配置
3 . 2 .1 数据库配置文件
需要修改一下cms网站的数据库文件/cms/include/database.inc.php
:
vim /var/www/html/cms/include/database.inc.php
需要修改一下数据库密码,我的数据库密码为123456
。
3 . 2 .2 创建cms数据库
启动mysql,创建cms数据库,将install.sql
文件导入到数据库中。
[root@localhost ~]# mysql -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 17
Server version: 5.5.56-MariaDB MariaDB ServerCopyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> create database cms;
Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> use cms;
Database changed
MariaDB [cms]> source /var/www/html/cms/install.sql;
再次访问cms网站:
这样就架设成功了!
4. 网站安全加固
4 .1 目录浏览
在我们访问127.0.0.1
时,我们会发现访问时会直接将我们的网站目录显示出来,这样是一种很危险的行为,这样用户就可以看到我们的目录结果,容易给攻击者可乘之机。
4 .2 网站配置
我们需要在Apache配置文件/etc/httpd/conf/httpd.conf
中关闭配置浏览。
vim /etc/httpd/conf/httpd.conf
我们可以对其进行修改:
# 允许所有地址访问
Order allow,deny
Allow from all# 禁止所有地址访问
Order allow,deny
Deny from all# 限制IP访问
Order allow,deny
Allow from all
deny from 172.16.1.0/24# 或者关闭目录浏览
Options -Indexes