温馨提示×

centos如何整合apache和php

小樊
47
2026-10-20 12:11:35
栏目: 编程语言

在 CentOS 上“整合 Apache 和 PHP”,通常是指:让 Apache 能够解析并执行 PHP 脚本。下面以 CentOS 7 / 8(含 Stream) 为例,分别说明常见做法。


一、使用 YUM/DNF 安装(最简单,推荐)

1. 安装 Apache

# CentOS 7
yum install httpd -y

# CentOS 8 / Stream
dnf install httpd -y

启动并设置开机自启:

systemctl start httpd
systemctl enable httpd

2. 安装 PHP(以 PHP 7.4 为例)

CentOS 7

yum install epel-release -y
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
yum install yum-utils -y
yum-config-manager --enable remi-php74
yum install php php-cli php-common php-mysqlnd -y

CentOS 8 / Stream

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

Apache 会自动依赖 php 模块(mod_php)


3. 验证 Apache + PHP 是否整合成功

创建测试文件:

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

浏览器访问:

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

看到 PHP 信息页面即说明整合成功。


二、Apache 与 PHP 的工作方式说明

方式一:mod_php(默认,最简单)

  • PHP 作为 Apache 模块运行
  • 配置简单
  • 适合传统网站(如 WordPress)

相关配置:

/etc/httpd/conf.modules.d/15-php.conf

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

适合高并发或生产环境。

安装 PHP-FPM

yum/dnf install php-fpm -y
systemctl start php-fpm
systemctl enable php-fpm

配置 Apache 使用 PHP-FPM

编辑虚拟主机:

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

重启 Apache:

systemctl restart httpd

三、常见问题排查

1. PHP 文件直接下载而不是执行

  • 未安装 PHP
  • Apache 未加载 PHP 模块
  • 检查:
httpd -M | grep php

2. 防火墙未放行

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

3. SELinux 问题

setsebool -P httpd_execmem 1

四、总结

方式 难度 性能 推荐场景
mod_php 低 中 学习、小站
PHP-FPM 中 高 生产环境

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

  • CentOS 具体版本
  • PHP 版本需求
  • 是否用于 WordPress / Laravel / 自研项目

我可以给你更精确的配置示例。

0 踩