CentOS环境下PHP多版本共存配置指南

在现代Web开发中,多版本PHP共存的需求越来越普遍。无论是为了兼容旧项目,还是为了测试新版本的PHP特性,掌握如何在CentOS系统中配置多版本PHP共存显得尤为重要。本文将以CentOS 7.x系统为例,详细介绍如何通过yum工具搭建支持多版本PHP的LNMP环境。

前置条件

假设你的服务器已经通过yum方式搭建了单版本的LNMP环境,且当前安装的PHP版本为7.4。如果尚未安装,可以参考相关教程完成基础环境的搭建。

实现目标

  1. 通过yum方式安装PHP 8.0,使其与PHP 7.4共存。
  2. 配置Nginx以支持不同版本的PHP运行。

安装PHP 8.0

首先,我们需要通过Remi仓库来安装PHP 8.0。Remi仓库提供了多个PHP版本的包,非常适合我们的需求。

启用Remi仓库

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

安装PHP 8.0

sudo yum-config-manager --enable remi-php80
sudo yum install -y php80

验证安装

/usr/bin/php80 -v

如果输出显示PHP 8.0的版本信息,说明安装成功。

配置Nginx支持PHP 8.0

为了让Nginx支持PHP 8.0,我们需要安装PHP 8.0的fpm组件,并修改相应的配置文件。

安装PHP 8.0的fpm组件

sudo yum install -y php80-php-fpm

配置PHP-FPM

由于默认安装的PHP 7.4的php-fpm占用了9000端口,我们需要将PHP 8.0的php-fpm监听端口改为其他端口,例如9001。

编辑PHP 8.0的php-fpm配置文件:

sudo vim /etc/opt/remi/php80/php-fpm.d/www.conf

找到以下行并修改:

listen = 9001

配置Nginx

接下来,我们需要修改Nginx的配置文件,使其能够根据不同的需求调用不同版本的PHP。

编辑Nginx配置文件:

sudo vim /etc/nginx/nginx.conf
server {
    listen 80;
    server_name php80.example.com;

    root /var/www/php80;
    index index.php index.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/opt/remi/php80/run/php-fpm/www.sock;
    }
}

重启服务

完成配置后,需要重启相应的服务以使配置生效。

sudo systemctl restart php80-php-fpm
sudo systemctl restart nginx

验证配置

为了验证配置是否正确,我们可以创建一个简单的PHP测试文件。

/var/www/php80目录下创建info.php

<?php
phpinfo();
?>

开机自启动

为了确保服务在系统重启后自动启动,我们需要设置开机自启动。

sudo systemctl enable php80-php-fpm
sudo systemctl enable nginx

安装PHP 8.0的其他组件

根据需要,你可能还需要安装其他PHP组件,例如mysqli、mbstring等。

sudo yum install -y php80-php-mysqli php80-php-mbstring

总结

通过上述步骤,我们成功在CentOS 7.x系统中搭建了支持多版本PHP的LNMP环境。你可以根据需要进一步调整配置,甚至可以按照相同的方法配置更多版本的PHP共存。需要注意的是,每次修改配置后,都需要重启相应的服务以使配置生效。