在CentOS环境中,有时我们需要并行运行多个版本的PHP,以便进行开发测试或者部署不同的应用程序。本文将详细介绍如何在CentOS下安装和管理多版本PHP,并介绍如何通过配置Nginx来实现并行运行。
安装多版本PHP
1. 准备工作
首先,确保你的CentOS系统已经安装了EPEL仓库,因为Remi仓库提供了多版本的PHP。
sudo yum install epel-release
2. 安装Remi仓库
Remi仓库是一个提供多个PHP版本的仓库,它支持CentOS 7.x。
sudo yum install remi-release
3. 安装特定版本的PHP
以PHP 7.4和PHP 8.0为例,我们可以同时安装这两个版本的PHP。
sudo yum-config-manager --enable remi-php74
sudo yum-config-manager --enable remi-php80
sudo yum install php74 php74-php-fpm php80 php80-php-fpm
4. 验证PHP版本
安装完成后,可以通过以下命令验证PHP版本:
php -v
配置Nginx支持多版本PHP
1. 安装Nginx
如果Nginx尚未安装,可以使用以下命令进行安装:
sudo yum install nginx
2. 配置Nginx
为了使Nginx支持多个版本的PHP,我们需要修改Nginx的配置文件,使其能够根据请求的路径选择对应的PHP-FPM进程。
sudo vi /etc/nginx/conf.d/default.conf
添加以下配置:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9000; # PHP 7.4 FPM
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
3. 配置PHP 8.0 FPM
为了支持PHP 8.0,我们需要修改php-fpm的配置文件。
sudo vi /etc/opt/remi/php80/php-fpm.d/www.conf
修改以下配置项:
user = nginx
group = nginx
listen = /var/run/php80/php-fpm.sock
4. 重启Nginx和php-fpm
sudo systemctl restart nginx
sudo systemctl restart php80-php-fpm
切换PHP版本
如果需要切换PHP版本,可以修改Nginx配置文件中对应的fastcgi_pass行,指向不同版本的php-fpm。
sudo vi /etc/nginx/conf.d/default.conf
将fastcgi_pass
指向相应的php-fpm版本:
fastcgi_pass 127.0.0.1:9000; # PHP 7.4 FPM
或者
fastcgi_pass 127.0.0.1:9001; # PHP 8.0 FPM
重启Nginx和php-fpm:
sudo systemctl restart nginx
sudo systemctl restart php80-php-fpm
通过以上步骤,你可以在CentOS下轻松切换并并行运行多个版本的PHP。