CentOS环境下PHP多版本共存配置指南
在现代Web开发中,多版本PHP共存的需求越来越普遍。无论是为了兼容旧项目,还是为了测试新版本的PHP特性,掌握如何在CentOS系统中配置多版本PHP共存显得尤为重要。本文将以CentOS 7.x系统为例,详细介绍如何通过yum工具搭建支持多版本PHP的LNMP环境。
前置条件
假设你的服务器已经通过yum方式搭建了单版本的LNMP环境,且当前安装的PHP版本为7.4。如果尚未安装,可以参考相关教程完成基础环境的搭建。
实现目标
- 通过yum方式安装PHP 8.0,使其与PHP 7.4共存。
- 配置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共存。需要注意的是,每次修改配置后,都需要重启相应的服务以使配置生效。