ubuntu lnmp如何更新升级
小樊
44
2025-12-24 03:33:48
Ubuntu LNMP 更新与升级指南
一 更新前的准备
- 备份关键数据与配置:包括网站目录(如 /var/www)、数据库(如 /var/lib/mysql)、以及 Nginx 配置(如 /etc/nginx)、PHP-FPM 配置(如 /etc/php/ 各版本目录)、数据库配置等。
- 检查可用磁盘空间:建议预留至少 20GB,避免升级过程因空间不足中断。
- 稳定网络与维护窗口:选择业务低峰期执行,确保全程网络稳定。
- 确认当前版本:便于升级后核对。
- 查看系统版本:lsb_release -a
- 查看组件版本:nginx -v、mysql --version、php -v
以上准备可显著降低升级风险并确保可回滚。
二 常规安全更新与组件升级
- 更新索引与已安装软件包:
- sudo apt update && sudo apt upgrade -y
- Nginx:
- 升级:sudo apt install --only-upgrade nginx -y
- 配置语法检查:sudo nginx -t
- 重启生效:sudo systemctl restart nginx
- MySQL/MariaDB:
- 升级:sudo apt install --only-upgrade mysql-server -y 或 sudo apt install --only-upgrade mariadb-server -y
- 安全加固(首次或周期性):sudo mysql_secure_installation
- 重启生效:sudo systemctl restart mysql 或 sudo systemctl restart mariadb
- PHP(以 PHP-FPM 为例):
- 升级核心与常用扩展(请将版本号替换为你的实际版本,如 8.1/8.2/8.3):
- sudo apt install --only-upgrade php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
- 配置语法检查:sudo php-fpm8.x -t(按实际版本号调整)
- 重启生效:sudo systemctl restart php8.x-fpm
- 验证运行状态:
- sudo systemctl status nginx、sudo systemctl status mysql/mariadb、sudo systemctl status php8.x-fpm
- 查看日志定位问题:
- /var/log/nginx/error.log
- /var/log/mysql/error.log 或 /var/log/mariadb/error.log
- /var/log/php8.x-fpm.log(按实际版本号调整)
上述步骤覆盖 Ubuntu 下 Nginx/MySQL/MariaDB/PHP 的常规安全更新与组件升级路径。
三 跨版本升级与注意事项
- 跨小版本 PHP:在同一 Ubuntu 版本内切换 PHP 小版本(如 8.1 → 8.2/8.3)时,建议:
- 安装目标版本:sudo apt install php8.2 php8.2-fpm php8.2-mysql …
- 平滑切换站点 FPM 监听(如将 fastcgi_pass unix:/run/php/php8.1-fpm.sock; 改为 php8.2-fpm.sock)
- 重载 Nginx:sudo systemctl reload nginx
- 验证后再停用旧版本:sudo systemctl disable --now php8.1-fpm
- 跨大版本 PHP:涉及大量扩展与框架兼容验证,务必先在测试环境验证,再灰度上线。
- 升级 MySQL/MariaDB 主版本:可能涉及数据字典变更与参数弃用,建议:
- 完整备份(物理与逻辑皆可)
- 按官方仓库升级,遵循其升级指引
- 升级后逐项核对业务与慢查询日志
- 升级 Nginx:通常安全且平滑,但自定义模块或第三方仓库需额外验证。
- 配置与语法检查是关键环节:
- sudo nginx -t、sudo php-fpm8.x -t 必须在重启前通过
- 服务重启顺序建议:PHP-FPM → Nginx → 数据库(避免短暂不可用或连接失败)
这些注意事项有助于在跨版本升级时降低风险并确保稳定性。
四 系统版本升级与后续清理
- 执行系统版本升级(如 20.04 → 22.04 → 24.04):
- 先完成上述常规更新:sudo apt update && sudo apt full-upgrade && sudo reboot
- 开始发行版升级:sudo do-release-upgrade
- 按提示完成下载与安装,过程中保持网络与电源稳定
- 升级后检查:
- 系统版本:lsb_release -a
- 服务状态:sudo systemctl status nginx mysql/mariadb php8.x-fpm
- 清理无用包与缓存:
- sudo apt autoremove -y && sudo apt autoclean
系统版本升级会同时带来内核与基础库更新,完成后务必复核 LNMP 组件版本与运行状态。