// article · linux
CentOS 使用 remi 仓库安装两个 PHP 版本
目标:安装两个不同的php版本,并且能同时运行对应php版本要求的系统
1. 添加 Remi 仓库
Remi 仓库提供了多个 PHP 版本的支持,首先需要安装并启用 Remi 仓库:
# 安装 EPEL 仓库(Remi 依赖 EPEL)
sudo yum install epel-release -y
# 安装 Remi 仓库
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y2. 安装多个 PHP 版本
安装 PHP 7.2
# 启用 PHP 7.2 仓库
sudo yum-config-manager --enable remi-php72
#如果提示yum config-manager: command not found,意味着 yum-config-manager 工具没有正确安装在你的系统上,输入yum install yum-utils安装
# 安装 PHP 7.2 及其常用扩展
yum install php72-php php72-php-fpm php72-php-mcrypt php72-php-cli php72-php-gd php72-php-curl php72-php-mysql php72-php-ldap php72-php-zip php72-php-fileinfo php72-php-redis php72-php-bcmath php72-php-gd php72-php-pdo php72-php-mbstring php72-php-fpm php72-php-mysqlnd php72-php-simplexml php72-php-devel安装 PHP 8.2
# 启用 PHP 8.2 仓库
sudo yum-config-manager --enable remi-php82
# 安装 PHP 8.2 及其常用扩展
yum install php82-php php82-php-fpm php82-php-mcrypt php82-php-cli php82-php-gd php82-php-curl php82-php-mysql php82-php-ldap php82-php-zip php82-php-fileinfo php82-php-redis php82-php-bcmath php82-php-gd php82-php-pdo php82-php-mbstring php82-php-fpm php82-php-mysqlnd php82-php-simplexml php82-php-devel3. 配置 PHP-FPM
每个 PHP 版本都有独立的 PHP-FPM 配置文件,需要分别配置以避免端口冲突。
修改 PHP 7.2 的 PHP-FPM 配置
vim /etc/opt/remi/php72/php-fpm.d/www.conflisten = 127.0.0.1:9000修改 PHP 8.0 的 PHP-FPM 配置
vim /etc/opt/remi/php82/php-fpm.d/www.conflisten = 127.0.0.1:9001启动 PHP-FPM 服务
# # 启动 PHP 7.2 的 PHP-FPM
sudo systemctl start php72-php-fpm
sudo systemctl enable php72-php-fpm
# 启动 PHP 8.2 的 PHP-FPM
sudo systemctl start php82-php-fpm
sudo systemctl enable php82-php-fpm4. 配置 Nginx 支持多版本 PHP
# PHP 7.4 站点配置
server {
listen 80;
server_name site74.example.com;
root /var/www/site74;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
# PHP 8.0 站点配置
server {
listen 80;
server_name site80.example.com;
root /var/www/site80;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9002;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}重启 Nginx
systemctl restart nginx5、检查 PHP 版本
# 检查 PHP 7.2 版本
/opt/remi/php72/root/usr/bin/php -v
# 检查 PHP 8.2 版本
/opt/remi/php82/root/usr/bin/php -v6. 切换默认 PHP 版本(可选)
如果需要切换默认的 PHP 版本,可以通过修改符号链接实现:
# 切换到 PHP 7.2
sudo ln -sf /opt/remi/php72/root/usr/bin/php /usr/bin/php
# 切换到 PHP 8.2
sudo ln -sf /opt/remi/php82/root/usr/bin/php /usr/bin/php