温馨提示×

Debian LNMP如何升级版本

小樊
46
2026-07-15 17:49:41
栏目: 智能运维

Debian 上升级 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 时,需要分别处理 系统版本LNMP 各组件版本。下面按推荐顺序给你一套 安全、可回滚 的升级方案。


一、升级前必做(非常重要)

1️⃣ 备份系统和数据

# 备份网站数据
tar czf /root/www_backup.tar.gz /var/www

# 备份数据库
mysqldump -u root -p --all-databases > /root/all_db.sql

# 备份关键配置
cp -r /etc/nginx /etc/nginx.bak
cp -r /etc/php /etc/php.bak
cp -r /etc/mysql /etc/mysql.bak

✅ 强烈建议做 整机快照(云服务器)


2️⃣ 查看当前版本

cat /etc/debian_version
nginx -v
php -v
mysql -V

二、升级 Debian 系统(可选但推荐)

1️⃣ 升级当前系统

apt update
apt upgrade -y
apt dist-upgrade -y

2️⃣ 升级 Debian 大版本(如 11 → 12)

sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
apt update
apt upgrade -y
apt dist-upgrade -y

✅ 升级完成后重启:

reboot

三、升级 Nginx(推荐 official 源)

1️⃣ 添加 Nginx 官方源

curl -fsSL https://nginx.org/keys/nginx_signing.key | gpg --dearmor > /usr/share/keyrings/nginx-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian $(lsb_release -cs) nginx" \
> /etc/apt/sources.list.d/nginx.list

2️⃣ 升级 Nginx

apt update
apt install nginx -y
nginx -t
systemctl restart nginx

四、升级 MySQL / MariaDB

情况 A:使用 MariaDB(Debian 默认)

1️⃣ 添加官方源

apt install -y curl gnupg
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash

2️⃣ 升级

apt update
apt upgrade -y
systemctl restart mariadb

3️⃣ 运行升级命令

mysql_upgrade -u root -p

情况 B:使用 MySQL

⚠️ 不建议随意跨大版本升级(如 5.7 → 8.0)

apt update
apt upgrade -y
systemctl restart mysql

五、升级 PHP(最常见升级项)

1️⃣ 添加 Sury PHP 源(推荐)

apt install -y lsb-release apt-transport-https ca-certificates curl
curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
dpkg -i /tmp/debsuryorg-archive-keyring.deb
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/sury-php.list
apt update

2️⃣ 安装新版本 PHP(如 8.2)

apt install -y php8.2 php8.2-fpm \
php8.2-mysql php8.2-curl php8.2-gd \
php8.2-mbstring php8.2-xml php8.2-zip

3️⃣ 切换 PHP 版本

update-alternatives --config php

修改 Nginx 配置:

fastcgi_pass unix:/run/php/php8.2-fpm.sock;
systemctl restart nginx php8.2-fpm

六、检查 LNMP 是否正常

nginx -t
php -v
mysql -V
systemctl status nginx php8.2-fpm mariadb

七、常见升级问题

❌ PHP 不兼容

  • 检查 composer.json
  • 框架最低 PHP 版本(Laravel / ThinkPHP)

❌ Nginx 启动失败

nginx -t
journalctl -xe

❌ 数据库无法启动

journalctl -u mariadb

八、推荐升级顺序(安全)

系统 → MariaDB → Nginx → PHP


九、是否可以一键升级?

方式 风险
apt upgrade ✅ 安全
手动编译 ❌ 高
一键脚本(如 lnmp.org) ⚠️ 需评估

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

  • ✅ Debian 版本(10 / 11 / 12)
  • ✅ 当前 LNMP 版本
  • ✅ 是否生产环境

我可以给你 定制升级方案(含回滚方案)

0