在 Linux 上 升级 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 并没有“一键命令”,而是分别升级各个组件。下面我按最常见、最稳妥的方式给你一个完整升级思路,适用于 CentOS / Rocky / Alma / Ubuntu / Debian。
# 网站目录
tar czf /backup/www_$(date +%F).tar.gz /usr/share/nginx/html
# 数据库
mysqldump -uroot -p --all-databases > /backup/mysql_all_$(date +%F).sql
# 配置文件
cp -r /etc/nginx /backup/nginx_$(date +%F)
cp -r /etc/php /backup/php_$(date +%F)
cp -r /etc/my.cnf /backup/my.cnf_$(date +%F)
nginx -v
php -v
mysql -V
sudo apt update
sudo apt upgrade nginx
yum update nginx
# 或
dnf update nginx
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
yum clean all
yum update nginx
yum update mysql mysql-server
apt update
apt upgrade mysql-server
⚠️ 大版本升级(如 5.7 → 8.0)必须:
mysql_upgrade -u root -p
# CentOS
yum update mariadb mariadb-server
# Ubuntu
apt update
apt upgrade mariadb-server
升级后执行:
mysql_upgrade -u root -p
PHP 升级最复杂,建议 用 Remi / Ondřej 源
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
查看可用版本:
apt-cache search php8
安装新版本(示例 PHP 8.2):
sudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-curl php8.2-mbstring php8.2-xml
切换 PHP 版本:
update-alternatives --config php
yum install epel-release
yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
启用新版本:
yum-config-manager --enable remi-php82
升级:
yum update php*
systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysqld
检查状态:
systemctl status nginx php-fpm mysqld
nginx -v
php -v
mysql -V
创建测试页:
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php
浏览器访问:
http://服务器IP/info.php
✅ PHP 扩展缺失
php -m
✅ Nginx 无法启动
nginx -t
✅ PHP-FPM 端口变化
ps aux | grep php-fpm
如果你是用 LNMP 一键安装包(如 lnmp.org):
cd lnmp1.x
./upgrade.sh
⚠️ 风险较高,不建议生产环境
你可以直接告诉我:
1️⃣ Linux 发行版 + 版本
2️⃣ 当前 LNMP 版本
3️⃣ 是否生产环境
4️⃣ 想升级到哪个版本
我可以给你 精确到命令级别的升级方案 ✅