Red Hat 9 下配置 Apache 和 PHP 环境的完整指南
Red Hat 9 下配置 Apache 和 PHP 环境的完整指南

Red Hat 9 下配置 Apache 和 PHP 环境的完整指南

内容目录

Red Hat 9 下配置 Apache 和 PHP 环境的完整指南

在企业级应用部署中,Red Hat Enterprise Linux(RHEL)一直是最受欢迎的服务器操作系统之一。今天,我们来详细介绍如何在 RHEL 9 上搭建 Apache + PHP 环境。

前期准备

在开始之前,请确保:

  • 已经安装好 Red Hat 9 系统
  • 有 root 权限或 sudo 权限
  • 服务器能够连接外网
  • 系统已激活并注册
    ★CentOS也可以

    1. 系统更新

首先,让我们更新系统到最新状态:

dnf update -y

这一步能确保我们的系统处于最新状态,避免潜在的兼容性问题。

2. 安装必要的仓库

要安装最新版本的 PHP,我们需要添加额外的软件源:

# 安装 EPEL 仓库
dnf install epel-release -y

# 安装 Remi 仓库
dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm -y

EPEL 和 Remi 仓库提供了许多官方仓库没有的软件包,特别是各种版本的 PHP。

3. 安装 Apache(httpd)

接下来安装 Apache 服务器:

dnf install httpd -y

4. 配置 PHP 环境

4.1 查看可用的 PHP 版本

dnf module list php

4.2 重置 PHP 模块(避免冲突)

dnf module reset php -y

4.3 启用 PHP 7.4

dnf module enable php:remi-7.4 -y

4.4 安装 PHP 及其扩展

dnf install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd \
php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json -y

这些扩展包含了最常用的功能:

  • php-mysqlnd: MySQL 支持
  • php-zip: ZIP 压缩支持
  • php-gd: 图像处理
  • php-mbstring: 多字节字符串支持
  • php-curl: CURL 支持
  • 等等…

5. 启动服务

5.1 启动并设置 Apache 自动启动

systemctl start httpd
systemctl enable httpd

5.2 启动并设置 PHP-FPM 自动启动

systemctl start php-fpm
systemctl enable php-fpm

6. 验证安装

创建一个测试文件来验证环境:

echo "" > /var/www/html/info.php

访问 http://你的服务器IP/info.php 来查看 PHP 信息页面。

7. 安全建议

  1. 完成测试后删除 info.php 文件:
rm /var/www/html/info.php
  1. 配置防火墙(如果需要):
firewall-cmd --permanent --add-service=http
firewall-cmd --reload

8. 常见问题解决

  1. 如果 Apache 无法启动,检查错误日志:
journalctl -u httpd
  1. 如果 PHP 页面无法解析,确认 PHP 模块已加载:
httpd -M | grep php

9. 处理 PHP 模块加载问题

有时候通过包管理器安装的 PHP 可能不会自动配置 Apache 的 PHP 模块。正常情况下,安装完成后应该能在 Apache 的模块目录(通常是 /etc/httpd/modules//usr/lib64/httpd/modules/)下找到 libphp7.so 文件。

检查 PHP 模块是否存在

ls /usr/lib64/httpd/modules/libphp*.so

检查模块是否已加载

httpd -M | grep php

方案一:添加模块配置

如果 libphp7.so 文件存在但未加载,创建配置文件:

echo "LoadModule php_module modules/libphp7.so" > /etc/httpd/conf.modules.d/10-php.conf

别忘了在 /etc/httpd/conf/httpd.conf 中添加 PHP 文件处理器:

# 添加以下内容

    SetHandler application/x-httpd-php

方案二:编译安装 PHP

如果 libphp7.so 文件确实缺失,则需要通过源代码编译安装:

# 安装编译所需依赖
dnf groupinstall "Development Tools" -y
dnf install httpd-devel autoconf automake libtool -y

# 下载 PHP 源码(以 7.4 为例)
wget https://www.php.net/distributions/php-7.4.33.tar.gz
tar xzf php-7.4.33.tar.gz
cd php-7.4.33

# 配置编译选项
./configure --with-apxs2=/usr/bin/apxs \
            --with-zlib \
            --enable-bcmath \
            --with-curl \
            --enable-gd \
            --with-mysqli=mysqlnd \
            --with-pdo-mysql=mysqlnd \
            --enable-mbstring \
            --with-xml

# 编译和安装
make
make install

# 复制配置文件
cp php.ini-production /etc/php.ini

编译安装后应该能在bin的文件目录下找到模块

复制模块到/etc/httpd/modules/即可

完成后重启 Apache:

systemctl restart httpd

再次检查模块是否加载:

httpd -M | grep php

注意事项:

  • 编译安装耗时较长,请耐心等待
  • 如果编译失败,请检查是否缺少其他依赖包*缺啥就装啥
  • 编译安装后,建议保存编译参数,以便将来升级时使用
  • 通过包管理器安装的 PHP 模块可能需要重新安装

记住:在生产环境中,优先使用包管理器安装,只有在特殊情况下才考虑编译安装。编译安装虽然灵活,但后期维护和升级都需要额外的工作,非常麻烦。

总结

至此,我们已经在 RHEL 9 上成功搭建了 Apache + PHP 环境。这个环境适合运行大多数 PHP 应用,如 WordPress、Laravel 等框架开发的项目。

记住要定期更新系统和软件包,以保持环境的安全性:

dnf update -y

如果在安装过程中遇到问题,欢迎在评论区留言交流!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注