CentOS 使用 remi 仓库安装两个 PHP 版本

Linux tytrock ⋅ 于 2025-03-18 17:36:59 ⋅ 118 阅读

目标:安装两个不同的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

# 安装 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
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter