温馨提示×

Apache如何在CentOS配置PHP

小樊
75
2026-07-20 09:34:06
栏目: 编程语言

下面分 两种常见场景 说明 Apache 在 CentOS 上配置 PHP 的方法,你可以按自己系统版本选择。


一、CentOS 7 + Apache + PHP(最常见)

1️⃣ 安装 Apache

sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd

验证:

systemctl status httpd

2️⃣ 安装 PHP(以 PHP 7.4 为例)

① 添加 Remi 源(推荐)

sudo yum install -y epel-release
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

② 启用 PHP 7.4

sudo yum install -y yum-utils
sudo yum-config-manager --enable remi-php74

③ 安装 PHP 及常用模块

sudo yum install -y php php-cli php-fpm php-mysqlnd php-json php-xml php-mbstring php-gd php-curl

3️⃣ Apache 与 PHP 连接方式(重要)

✅ 方式一:mod_php(最简单,适合新手)

sudo yum install -y php

Apache 会自动加载 PHP 模块。

重启 Apache:

sudo systemctl restart httpd

✅ 方式二:PHP-FPM(推荐,性能更好)

① 启动 PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
② 配置 Apache 支持 PHP-FPM

编辑配置文件:

sudo vi /etc/httpd/conf.d/php.conf

确保包含:

<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

重启服务:

sudo systemctl restart httpd
sudo systemctl restart php-fpm

4️⃣ 测试 PHP

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

浏览器访问:

http://服务器IP/info.php

✅ 能看到 PHP 信息页面即成功。


二、CentOS 8 / Stream(使用 dnf)

1️⃣ 安装 Apache

sudo dnf install -y httpd
sudo systemctl enable --now httpd

2️⃣ 安装 PHP

sudo dnf install -y php php-cli php-fpm php-mysqlnd php-json php-xml php-mbstring

3️⃣ PHP-FPM 配置(推荐)

sudo systemctl enable --now php-fpm

编辑 Apache 配置:

sudo vi /etc/httpd/conf.d/php.conf

添加:

<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

重启:

sudo systemctl restart httpd php-fpm

三、常见问题排查

❌ PHP 文件被下载而不是执行

  • 未安装 PHP
  • Apache 未加载 PHP 模块
  • SetHandler 配置错误或缺失

❌ 403 Forbidden

sudo chown -R apache:apache /var/www/html
sudo chmod -R 755 /var/www/html

❌ 防火墙阻止访问

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

四、推荐配置总结

场景 推荐方案
学习 / 测试 Apache + mod_php
生产环境 Apache + PHP-FPM
CentOS 7 Remi PHP
CentOS 8+ AppStream / Remi

如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ PHP 版本需求
  • ✅ 是否用于生产环境

我可以给你 一条最合适、最精简的配置方案。

0 踩