温馨提示×

LNMP如何切换PHP版本

小樊
52
2026-07-23 05:21:29
栏目: 编程语言

LNMP 环境(Linux + Nginx + MySQL + PHP) 中切换 PHP 版本,常见做法取决于你 如何安装的 LNMP。下面按 最常见场景 给你一套完整、可操作的方案。


一、先确认当前 PHP 版本

php -v
php-fpm -v

以及 PHP-FPM 服务名:

systemctl list-units | grep php

常见服务名:

  • php-fpm
  • php7.2-fpm
  • php7.4-fpm
  • php8.1-fpm

二、方式一:使用 LNMP 一键安装包(最常见 ✅)

如果你用的是 lnmp.org 一键安装包,切换 PHP 版本非常简单

1️⃣ 重新运行安装脚本

cd /root/lnmp1.x  # 你当时的 lnmp 目录
./install.sh

选择:

  • Upgrade PHP
  • 或 Install PHP 新版本

不会删除网站数据 ✅ 可并存多个 PHP 版本(推荐)


2️⃣ 在 LNMP 中为网站指定 PHP 版本

编辑虚拟主机配置:

/usr/local/nginx/conf/vhost/yourdomain.conf

修改这一行(重点):

fastcgi_pass  unix:/tmp/php-cgi.sock;

改为对应版本,例如:

fastcgi_pass  unix:/tmp/php-cgi-7.4.sock;

或:

fastcgi_pass  unix:/tmp/php-cgi-8.1.sock;

然后重启:

lnmp nginx reload

这是 LNMP 官方推荐方式


三、方式二:Ubuntu / Debian 使用系统 PHP

1️⃣ 安装多个 PHP 版本

sudo apt install php7.4-fpm php8.1-fpm

2️⃣ 禁用旧版本

sudo systemctl stop php7.4-fpm
sudo systemctl disable php7.4-fpm

3️⃣ 启用新版本

sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

4️⃣ 修改 Nginx 配置

location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}

重载:

sudo systemctl reload nginx

四、方式三:CentOS / Rocky / AlmaLinux

使用 Remi 仓库(推荐)

yum install yum-utils
yum-config-manager --enable remi-php81
yum install php php-fpm

切换版本:

yum-config-manager --disable remi-php74
yum-config-manager --enable remi-php81
yum update php*

五、多版本 PHP 同时存在(高级但实用 ✅)

适合:

  • 一个站 PHP 7.4
  • 一个站 PHP 8.2

1️⃣ 不同 PHP-FPM 监听不同 sock

; /etc/php/7.4/fpm/pool.d/www.conf
listen = /run/php/php7.4-fpm.sock

; /etc/php/8.1/fpm/pool.d/www.conf
listen = /run/php/php8.1-fpm.sock

2️⃣ Nginx 按站点指定

fastcgi_pass unix:/run/php/php7.4-fpm.sock;

六、常见问题排查

❌ 502 Bad Gateway

tail -f /var/log/nginx/error.log

原因:

  • sock 路径不对
  • PHP-FPM 没启动

✅ 检查 PHP-FPM 是否运行

ps aux | grep php-fpm

七、推荐方案总结

场景 推荐方式
使用 LNMP 一键包 ✅ 官方方式(多版本并存)
Ubuntu / Debian apt + 多 PHP-FPM
CentOS Remi 仓库
多网站不同 PHP 多 PHP-FPM + Nginx

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

  • ✅ 系统版本(Ubuntu / CentOS / Alma)
  • ✅ 是否使用 LNMP 一键包
  • ✅ 当前 PHP 版本

我可以 直接给你精确的命令,一步到位 ✅

0