CentOS LAMP环境搭建指南
一、LAMP架构介绍
LAMP是Linux操作系统、Apache服务器、MySQL数据库和PHP编程语言的组合,是一种常见的Web开发环境,这种组合因其灵活性和可定制性而广受欢迎,适用于各种规模的Web应用开发、部署和维护。
1、Linux:作为操作系统,提供了稳定的基础运行环境。
2、Apache:功能强大的HTTP服务器,用于处理静态和动态网页请求。
3、MySQL:流行的关系型数据库管理系统,用于存储和管理数据。
4、PHP:广泛使用的服务器端脚本语言,可以嵌入HTML中,用于动态网页开发。
二、准备工作
在开始之前,确保你的CentOS系统满足以下条件:
1、已分配公网IP地址或绑定弹性公网IP(EIP)。
2、操作系统为CentOS 7.x。
3、实例安全组的入方向规则已放行22、80、443端口。
三、安装步骤
安装Apache
1.1 更新系统并安装Apache服务及扩展包
sudo yum update y sudo yum y install httpd httpdmanual mod_ssl mod_perl
1.2 启动Apache服务并设置开机自启动
sudo systemctl start httpd sudo systemctl enable httpd
1.3 检查Apache状态
sudo systemctl status httpd
返回结果类似如下所示,表示Apache服务已启动:
● httpd.service The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Mon 20240708 10:00:00 PDT; 1h 25min ago Docs: man:httpd(8) Main PID: 1234 (httpd) CGroup: /system.slice/httpd.service ├─1234 /usr/sbin/httpd DFOREGROUND └─1235 /usr/sbin/httpd DFOREGROUND
访问http://<你的ECS公网登录地址>/
,如果显示Apache的默认页面,则表示Apache安装成功。
安装并配置MySQL
2.1 安装MySQL依赖包(针对Alibaba Cloud Linux 3)
sudo yum install compatopenssl10
2.2 更新YUM源并安装MySQL
sudo rpm Uvh https://dev.mysql.com/get/mysql80communityreleaseel711.noarch.rpm sudo yum y install mysqlcommunityserver
2.3 启动MySQL并设置开机自启动
sudo systemctl start mysqld sudo systemctl enable mysqld sudo systemctl daemonreload
2.4 获取并记录root用户的初始密码
sudo grep 'temporary password' /var/log/mysqld.log
命令行返回结果如下,其中ARQTRy3+
为MySQL的初始密码,在下一步重置root用户密码时,会使用该初始密码。
20240708T10:00:00.123456Z 1 [Note] A temporary password is generated for root@localhost: ARQTRy3+
2.5 配置MySQL的安全性
sudo mysql_secure_installation
输入MySQL的初始密码,然后根据提示进行以下操作:
设置新密码(长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号)。
删除匿名用户。
禁止使用root用户远程登录MySQL。
删除test库以及用户对test库的访问权限。
重新加载授权表。
2.6 登录MySQL并修改密码
mysql uroot p
输入新密码后,执行以下命令修改root用户密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
2.7 授予root用户远程管理权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '新密码' WITH GRANT OPTION; FLUSH PRIVILEGES;
退出数据库:
exit;
安装PHP
3.1 安装PHP及相关扩展包
sudo yum y install php phpmysql gd phpgd gddevel phpxml phpcommon phpmbstring phpldap phppear phpxmlrpc phpimap
3.2 创建PHP测试页面并测试
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
重启Apache服务以使PHP生效:
sudo systemctl restart httpd
访问http://<你的ECS公网登录地址>/phpinfo.php
,显示PHP信息页面表示PHP安装成功。
安装phpMyAdmin(可选)
4.1 安装依赖包并下载phpMyAdmin压缩包
sudo yum y install unzip wget wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin5.1.3alllanguages.zip P /tmp/
4.2 解压phpMyAdmin并移动到指定目录
unzip /tmp/phpMyAdmin5.1.3alllanguages.zip d /tmp/ sudo mv /tmp/phpMyAdmin5.1.3alllanguages/ /usr/share/phpMyAdmin/
4.3 配置Apache虚拟主机文件以支持phpMyAdmin
编辑Apache配置文件:
sudo vi /etc/httpd/conf.d/phpMyAdmin.conf
添加以下内容:
<VirtualHost *:80> DocumentRoot "/usr/share/phpMyAdmin" ServerName phpmyadmin.local <Directory "/usr/share/phpMyAdmin"> AllowOverride All Require all granted </Directory> </VirtualHost>
启用虚拟主机文件:
sudo ln s /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf/httpd.conf.d/phpMyAdmin.conf
重启Apache服务:
sudo systemctl restart httpd
访问http://<你的ECS公网登录地址>/phpmyadmin
,使用MySQL的用户名和密码登录phpMyAdmin,返回页面如下图所示,说明phpMyAdmin安装成功。
四、防火墙设置与SELinux配置(可选但推荐)
1. 配置防火墙以允许HTTP和HTTPS流量
sudo firewallcmd permanent addservice=http sudo firewallcmd permanent addservice=https sudo firewallcmd reload
sudo setsebool P httpd_can_network_connect_db 1 sudo setsebool P httpd_can_network_connect 1
注意:在某些情况下,你可能需要安装并使用policycore
模块来进行更精细的SELinux配置,具体操作请参考相关文档或咨询系统管理员。
五、常见问题解答(FAQs)
Q1: 如何更改Apache的监听端口?
A1: 编辑Apache配置文件/etc/httpd/conf/httpd.conf
,找到Listen
指令并将其设置为所需的端口号,将端口更改为8080:
Listen 8080
然后重启Apache服务:
sudo systemctl restart httpd
注意:同时需要更新防火墙规则以允许新的端口号通过。
Q2: PHPMyAdmin访问被拒绝怎么办?
A2: 确保你已经正确配置了Apache虚拟主机文件,并且防火墙规则允许访问phpMyAdmin的URL,如果问题仍然存在,请检查Apache的错误日志(通常位于/var/log/httpd/error_log
)以获取更多信息,确保PHPMyAdmin的文件和目录权限正确,通常应该是644
(文件)和755
(目录),且所有者为apache
用户和apache
组。