下面给你一份**在 CentOS 上配置 LAMP(Linux + Apache + MySQL/MariaDB + PHP)**的完整、常用做法,适用于 CentOS 7/8(Stream 也适用),并分别说明不同版本的差异。
yum update -y
yum install -y httpd
启动并设置开机自启:
systemctl start httpd
systemctl enable httpd
防火墙放行 HTTP:
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
浏览器访问服务器 IP,看到 Apache 测试页即成功。
yum install -y mariadb mariadb-server
启动数据库:
systemctl start mariadb
systemctl enable mariadb
初始化安全配置:
mysql_secure_installation
CentOS 7 默认 PHP 版本较低,建议用 Remi 源:
yum install -y epel-release
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
安装 PHP 7.4(示例):
yum install -y yum-utils
yum-config-manager --enable remi-php74
yum install -y php php-cli php-common php-devel php-mysql php-fpm php-gd php-mbstring php-xml
重启 Apache:
systemctl restart httpd
创建测试文件:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
浏览器访问:
http://服务器IP/info.php
✅ 能看到 PHP 信息页面即成功。
dnf install -y httpd
systemctl enable --now httpd
防火墙:
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
dnf install -y mariadb mariadb-server
systemctl enable --now mariadb
mysql_secure_installation
查看可用版本:
dnf module list php
启用 PHP 7.4:
dnf module enable php:7.4 -y
安装 PHP:
dnf install -y php php-mysqlnd php-gd php-mbstring php-xml php-json
重启 Apache:
systemctl restart httpd
/var/www/html
修改配置文件:
vim /etc/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
VirtualHost 中开启:
<Directory "/var/www/html">
AllowOverride All
</Directory>
<?php
$conn = new mysqli("localhost","root","密码");
if ($conn->connect_error) {
die("连接失败");
}
echo "数据库连接成功";
?>
| 问题 | 解决 |
|---|---|
| Apache 无法访问 | 检查防火墙、SELinux |
| PHP 不解析 | Apache 未加载 PHP 模块 |
| 数据库连接失败 | 未安装 php-mysql 或 php-mysqlnd |
临时关闭 SELinux:
setenforce 0
永久关闭:
vim /etc/selinux/config
SELINUX=disabled
✅ CentOS + LAMP 标准流程:
如果你需要:
告诉我你的系统版本和使用场景,我可以给你更精确的配置方案。