CentOS 7 上使用 Apache 的多个 PHP 版本

作者:编程家 分类: php 时间:2025-11-06

CentOS 7 上使用 Apache 的多个 PHP 版本

在 CentOS 7 上,我们可以通过配置 Apache 服务器来同时支持多个 PHP 版本。这种配置可以让我们在同一台服务器上运行不同版本的 PHP,以满足不同的应用程序需求。本文将介绍如何在 CentOS 7 上使用 Apache 的多个 PHP 版本,并提供相应的案例代码。

安装 Apache 服务器

在开始之前,我们需要先安装 Apache 服务器。可以通过以下命令在 CentOS 7 上安装 Apache:

sudo yum install httpd

安装完成后,我们可以通过以下命令启动 Apache 服务器:

sudo systemctl start httpd

安装 PHP 版本管理工具

为了能够方便地管理多个 PHP 版本,我们可以使用 PHP 版本管理工具。在本例中,我们将使用 Remi 版本库提供的 SCL(Software Collections)工具。

首先,我们需要安装 Remi 版本库。可以通过以下命令安装:

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

安装完成后,我们可以使用以下命令安装 SCL 工具:

sudo yum install scl-utils

安装 PHP 版本

接下来,我们可以使用 SCL 工具来安装多个 PHP 版本。假设我们需要安装 PHP 7.2 和 PHP 7.4。

可以使用以下命令安装 PHP 7.2:

sudo yum install rh-php72

可以使用以下命令安装 PHP 7.4:

sudo yum install rh-php74

配置 Apache 服务器

安装完所需的 PHP 版本后,我们需要配置 Apache 服务器以支持这些版本。

首先,我们需要编辑 Apache 的配置文件。可以使用以下命令打开配置文件:

sudo vi /etc/httpd/conf/httpd.conf

在文件中找到以下行,并将其注释掉:

#LoadModule php5_module modules/libphp5.so

然后,添加以下行来加载 PHP 7.2 模块:

LoadModule php7_module /opt/rh/rh-php72/root/usr/lib64/httpd/modules/libphp7.so

再添加以下行来加载 PHP 7.4 模块:

LoadModule php7_module /opt/rh/rh-php74/root/usr/lib64/httpd/modules/libphp7.so

保存并关闭文件。

接下来,我们需要创建一个虚拟主机配置文件,用于每个 PHP 版本。可以使用以下命令创建文件:

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

在文件中添加以下内容:

ServerName example.com

DocumentRoot /var/www/html/php72

DirectoryIndex index.php

AllowOverride All

Require all granted

SetHandler "proxy:unix:/run/php72-fpm.sock|fcgi://localhost"

保存并关闭文件。然后,创建一个类似的配置文件来支持 PHP 7.4:

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

在文件中添加以下内容:

ServerName example.com

DocumentRoot /var/www/html/php74

DirectoryIndex index.php

AllowOverride All

Require all granted

SetHandler "proxy:unix:/run/php74-fpm.sock|fcgi://localhost"

保存并关闭文件。

创建测试文件

现在,我们可以创建一些测试文件来验证多个 PHP 版本的配置是否成功。

在 `/var/www/html` 目录下创建一个名为 `php72` 的文件夹,并在文件夹中创建一个名为 `test.php` 的文件。文件内容如下:

php

phpinfo();

?>

然后,按照相同的方法在 `/var/www/html` 目录下创建一个名为 `php74` 的文件夹,并在文件夹中创建一个名为 `test.php` 的文件,内容与上述文件相同。

重启 Apache 服务器

完成上述步骤后,我们需要重启 Apache 服务器以使配置生效。可以使用以下命令重启 Apache:

sudo systemctl restart httpd

测试多个 PHP 版本

现在,我们可以在浏览器中访问测试文件来验证多个 PHP 版本的配置。

在浏览器中输入服务器的 IP 地址或域名,加上 `/php72/test.php`,即 `http://your_ip_or_domain/php72/test.php`。如果成功显示 PHP 7.2 的信息,则说明 PHP 7.2 配置成功。

同样地,输入服务器的 IP 地址或域名,加上 `/php74/test.php`,即 `http://your_ip_or_domain/php74/test.php`。如果成功显示 PHP 7.4 的信息,则说明 PHP 7.4 配置成功。

通过以上步骤,我们成功地在 CentOS 7 上配置了 Apache 服务器以支持多个 PHP 版本。这使得我们可以在同一台服务器上运行不同版本的 PHP,以满足不同的应用程序需求。这种配置方式可以提高服务器的灵活性和可用性。