温馨提示×

CentOS怎么配置PHP多版本

小樊
41
2026-07-08 03:14:45
栏目: 编程语言

CentOS 上配置 PHP 多版本共存,常见有三种方案,按推荐程度从高到低说明。


✅ 推荐方案一:使用 Remi 仓库(最常用、最稳定)

适合 CentOS 7 / 8 / Stream,可以实现 PHP 7.2 / 7.4 / 8.0 / 8.1 / 8.2 等共存

1️⃣ 安装 EPEL 和 Remi 仓库

# CentOS 7
yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

# CentOS 8 / Stream
dnf install -y epel-release
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

2️⃣ 查看可用的 PHP 版本

yum repolist all | grep php
# 或
dnf module list php

3️⃣ 安装多个 PHP 版本(示例)

安装 PHP 7.4

yum install -y php74 php74-php-fpm php74-php-mysql php74-php-gd

安装 PHP 8.1

yum install -y php81 php81-php-fpm php81-php-mysql php81-php-gd

注意:Remi 包名是 php74-php-fpmphp81-php-fpm


4️⃣ 启动不同版本的 PHP-FPM

systemctl start php74-php-fpm
systemctl start php81-php-fpm

查看端口:

netstat -lntp | grep php

默认端口一般是:

  • php74:9000
  • php81:9001(或自行配置)

5️⃣ 修改 PHP-FPM 监听端口(防止冲突)

编辑:

vi /etc/opt/remi/php81/php-fpm.d/www.conf

修改:

listen = 127.0.0.1:9001

重启:

systemctl restart php81-php-fpm

6️⃣ Nginx / Apache 指定 PHP 版本

Nginx 示例

location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9001;
    include        fastcgi_params;
}

不同站点可使用不同 PHP 版本。


✅ 方案二:Docker(最干净、最灵活)

适合 生产环境隔离

docker run -d -p 9001:9000 php:7.4-fpm
docker run -d -p 9002:9000 php:8.1-fpm

优点:

  • 不污染系统
  • 切换方便

✅ 方案三:编译安装(不推荐新手)

./configure --prefix=/usr/local/php81
make && make install

❌ 维护成本高
✅ 可深度定制


✅ 查看当前 PHP 版本

php -v

如果你想临时切换系统默认 PHP:

update-alternatives --config php

✅ 常见问题

❓PHP 命令用哪个?

php74 -v
php81 -v

或:

/opt/remi/php81/root/usr/bin/php -v

❓Nginx 总是用错 PHP?

✅ 检查 fastcgi_pass 端口
✅ 确认 PHP-FPM 正在监听


✅ 推荐组合(生产建议)

场景 建议
多站点多 PHP Remi + PHP-FPM
容器化 Docker
开发测试 Docker
老系统兼容 Remi

如果你愿意,可以告诉我:

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 用的是 Nginx 还是 Apache
  • ✅ 需要哪些 PHP 扩展

我可以直接给你一套 完整可复制的配置

0