Rock笔记
~/rocknotes/articles/417.md article
// 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 -y


2. 安装多个 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-devel


3. 配置 PHP-FPM

每个 PHP 版本都有独立的 PHP-FPM 配置文件,需要分别配置以避免端口冲突。

修改 PHP 7.2 的 PHP-FPM 配置

vim /etc/opt/remi/php72/php-fpm.d/www.conf
listen = 127.0.0.1:9000

修改 PHP 8.0 的 PHP-FPM 配置

vim /etc/opt/remi/php82/php-fpm.d/www.conf
listen = 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-fpm



4. 配置 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 nginx


5、检查 PHP 版本

# 检查 PHP 7.2 版本
/opt/remi/php72/root/usr/bin/php -v

# 检查 PHP 8.2 版本
/opt/remi/php82/root/usr/bin/php -v


6. 切换默认 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




回复// 0 replies

最新回复 ↓
// 暂无回复

回复功能沿用原详情页:前往原页面参与讨论 →