下面给你一份CentOS 7/8 上配置 Apache + PHP 的常用做法(以 PHP 7.4 为例,其他版本类似)。
# CentOS 7
yum install -y httpd
# CentOS 8
dnf install -y httpd
启动并设置开机自启:
systemctl start httpd
systemctl enable httpd
防火墙放行:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
浏览器访问服务器 IP,看到 Apache 测试页即成功。
yum install -y epel-release yum-utils
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum install -y php php-cli php-common php-mysqlnd php-fpm
dnf install -y epel-release
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf module reset php
dnf module enable php:remi-7.4
dnf install -y php php-cli php-common php-mysqlnd
CentOS 默认 Apache 使用 mod_php(php 包已包含)。
确认模块已加载:
httpd -M | grep php
应有类似:
php7_module (shared)
如没有,编辑:
vi /etc/httpd/conf.modules.d/15-php.conf
确保包含:
LoadModule php7_module modules/libphp7.so
AddHandler php7-script .php
创建测试文件:
vi /var/www/html/info.php
内容:
<?php
phpinfo();
重启 Apache:
systemctl restart httpd
访问:
http://服务器IP/info.php
看到 PHP 信息页即配置成功。
/var/www/html/etc/httpd/conf/httpd.conf/etc/httpd/conf.d/<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
<Directory /var/www/example>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
如果你用的是 CentOS Stream / Rocky / Alma 或想要 PHP 8.x / Apache + PHP-FPM,可以告诉我,我给你对应版本。