温馨提示×

apache在centos如何配置php

小樊
39
2026-09-09 00:06:41
栏目: 编程语言

下面以 CentOS 7 / 8 为例,介绍 Apache + PHP 的常见配置方式。


一、安装 Apache 和 PHP

1. 安装 Apache

# CentOS 7
yum install httpd -y

# CentOS 8
dnf install httpd -y

启动并设置开机自启:

systemctl start httpd
systemctl enable httpd

2. 安装 PHP

CentOS 7(默认 PHP 5.4,推荐 Remi 源)

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

# 启用 PHP 7.4 示例
yum-config-manager --enable remi-php74
yum install php php-cli php-common php-mysqlnd php-fpm -y

CentOS 8(默认 PHP 7.2+)

dnf install php php-cli php-common php-mysqlnd -y

二、Apache 与 PHP 的两种运行方式

✅ 方式一:mod_php(最简单,推荐新手)

安装 mod_php

# CentOS 7
yum install php -y

# CentOS 8
dnf install php -y

验证模块

httpd -M | grep php

看到 php7_module 即成功。

测试 PHP

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

浏览器访问:

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

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

安装 PHP-FPM

yum install php-fpm -y
# 或
dnf install php-fpm -y

启动 PHP-FPM

systemctl start php-fpm
systemctl enable php-fpm

配置 Apache 使用 PHP-FPM

编辑或新建配置文件:

vi /etc/httpd/conf.d/php-fpm.conf

内容示例:

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

重启 Apache:

systemctl restart httpd

三、防火墙设置(如开启 firewalld)

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

四、常见目录说明

项目 路径
网站根目录 /var/www/html
Apache 配置 /etc/httpd/conf/httpd.conf
虚拟主机 /etc/httpd/conf.d/
PHP 配置 /etc/php.ini

五、常见问题排查

1. 访问 PHP 直接下载

  • 未安装 PHP
  • Apache 未加载 PHP 模块
  • 使用了 PHP-FPM 但未配置 handler

2. 权限问题

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

3. 查看错误日志

tail -f /var/log/httpd/error_log

如果你告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • PHP 版本需求(5.6 / 7.4 / 8.x)
  • 是否用虚拟主机

我可以给你一份精确配置示例

0