Debian LNMP更新升级指南
小樊
35
2025-12-16 18:44:39
Debian LNMP 更新升级指南
一 升级前准备
- 备份关键数据与配置:数据库全量备份(如 mysqldump)、网站目录(如 /var/www)、证书与密钥(如 /etc/letsencrypt)、以及各服务的配置文件(如 /etc/nginx、/etc/php/、/etc/mysql/)。
- 选择维护窗口与维护模式:在访问低峰期操作,动态站点建议先开启维护页或返回 503。
- 检查可用更新与变更:执行 sudo apt update,用 apt list --upgradable 查看可升级包,阅读变更说明。
- 准备回滚方案:记录当前各组件版本(如 nginx -v、mysql --version、php -v),保留旧配置与旧二进制包(如有必要)。
- 可选启用自动安全更新:安装并配置 unattended-upgrades 仅用于安全补丁,降低风险。
二 标准安全更新流程
- 系统软件包更新:执行 sudo apt update && sudo apt upgrade,完成后可运行 sudo apt autoremove && sudo apt clean 清理无用包与缓存。
- 逐个重启受影响服务并验证版本:
- Nginx:sudo systemctl restart nginx && nginx -v
- MariaDB/MySQL:sudo systemctl restart mariadb(或 mysql)&& mysql --version
- PHP-FPM:sudo systemctl restart php<版本>-fpm && php -v
- 配置与语法检查:Nginx 执行 sudo nginx -t 确认配置无误再重启;检查各服务日志(如 /var/log/nginx/error.log、/var/log/mysql/error.log)以排查启动失败原因。
三 跨版本升级与官方源
- 何时考虑跨版本:当需要 PHP 7.x → 8.x、MariaDB 10.3 → 10.11/11.x 或 Nginx 稳定版 → 主线版 时,建议使用各项目的官方 APT 仓库,以获得更新版本与持续安全修复。
- Nginx 官方源示例:导入 GPG 并添加仓库后升级
- 导入密钥:wget -qO - https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
- 添加源(Debian 11/12 示例):echo “deb https://nginx.org/packages/mainline/debian $(lsb_release -cs) nginx” | sudo tee /etc/apt/sources.list.d/nginx.list
- 升级:sudo apt update && sudo apt install nginx
- MariaDB 官方源示例:导入 GPG 并添加仓库后升级
- 导入密钥:wget -qO - https://packages.mariadb.org/mariadb/release/signing-key.asc | sudo apt-key add -
- 添加源(按需选择版本系列):echo “deb https://packages.mariadb.org/mariadb/repo/10.11/debian $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/mariadb.list
- 升级:sudo apt update && sudo apt install mariadb-server mariadb-client
- PHP 官方源示例(Ondřej Surý):
- 添加 PPA(Debian 11/12 可用):sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php && sudo apt update
- 安装/升级到指定版本(示例为 8.2):sudo apt install php8.2 php8.2-fpm php8.2-mysql
- 重要提示:跨版本升级前务必完整备份;升级后按需运行 mysql_secure_installation,并调整 Nginx fastcgi_pass 指向新的 PHP-FPM 套接字(如 /run/php/php8.2-fpm.sock),执行 sudo nginx -t 验证并重载。
四 升级后验证与回滚
- 版本与连通性验证:
- 组件版本:nginx -v、mysql --version(或 mariadb --version)、php -v
- 应用连通:访问站点首页与关键接口,确认 PHP-FPM 正常解析(如 phpinfo() 或健康检查脚本)。
- 功能性回归测试:登录后台、提交表单、读写数据库、执行计划任务(如 cron)、检查文件上传与缓存。
- 日志与告警:持续观察 Nginx 与 MariaDB/MySQL 错误日志,确认无启动失败、崩溃或慢查询激增。
- 快速回滚思路:
- 使用 apt 降级到升级前版本(如 sudo apt install nginx=<旧版本>),或从备份恢复配置文件与网站目录;
- 数据库用备份恢复;
- 回滚后再次执行 sudo nginx -t && sudo systemctl restart nginx。
五 维护与自动化建议
- 定期安全更新:保持 APT 源最新,周期性执行 apt update && apt upgrade;对关键业务可先在测试环境验证。
- 自动化安全补丁:安装 unattended-upgrades 并仅启用安全更新,减少暴露窗口。
- 配置与证书管理:变更前备份;证书使用 certbot 等工具统一管理,续期后重载 Nginx。
- 监控与告警:对 HTTP 5xx、PHP-FPM 进程异常、MySQL 连接失败 设置监控与告警,便于快速响应。