在 LNMP 环境(Linux + Nginx + MySQL + PHP) 中切换 PHP 版本,常见做法取决于你 如何安装的 LNMP。下面按 最常见场景 给你一套完整、可操作的方案。
php -v
php-fpm -v
以及 PHP-FPM 服务名:
systemctl list-units | grep php
常见服务名:
php-fpmphp7.2-fpmphp7.4-fpmphp8.1-fpm如果你用的是 lnmp.org 一键安装包,切换 PHP 版本非常简单。
cd /root/lnmp1.x # 你当时的 lnmp 目录
./install.sh
选择:
✅ 不会删除网站数据 ✅ 可并存多个 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 官方推荐方式
sudo apt install php7.4-fpm php8.1-fpm
sudo systemctl stop php7.4-fpm
sudo systemctl disable php7.4-fpm
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
重载:
sudo systemctl reload nginx
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*
适合:
; /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
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
tail -f /var/log/nginx/error.log
原因:
ps aux | grep php-fpm
| 场景 | 推荐方式 |
|---|---|
| 使用 LNMP 一键包 | ✅ 官方方式(多版本并存) |
| Ubuntu / Debian | apt + 多 PHP-FPM |
| CentOS | Remi 仓库 |
| 多网站不同 PHP | 多 PHP-FPM + Nginx |
如果你愿意,可以告诉我:
我可以 直接给你精确的命令,一步到位 ✅