温馨提示×

Linux LNMP如何更新

小樊
33
2025-12-12 02:29:44
栏目: 智能运维

Linux LNMP 更新与版本升级实操指南

一 更新前准备

  • 备份关键数据与配置:数据库全量备份(如 mysqldump -u root -p --all-databases > backup.sql)、网站目录(如 /var/www/html)、以及 Nginx/PHP 配置目录(如 /etc/nginx//etc/php/)。
  • 选择维护窗口:在低峰时段执行,避免影响线上业务。
  • 检查兼容性:确认应用与即将升级的 Nginx/MySQL/MariaDB/PHP 版本兼容。
  • 准备回滚方案:保留旧版本安装包/容器镜像,记录当前各组件版本与关键配置。
    以上做法可显著降低升级风险并提升可回滚性。

二 标准更新流程(安全且通用)

  • 更新系统软件包索引与已安装包:
    • Debian/Ubuntu:执行 sudo apt update && sudo apt upgrade -y
    • CentOS/RHEL:执行 sudo yum update -y
  • 单独更新组件(按需执行,保持当前小版本系列优先):
    • Nginx:执行 sudo apt install nginx -ysudo yum install nginx -y
    • MySQL/MariaDB:执行 sudo apt install mysql-server -ysudo yum install mariadb-server -y
    • PHP(示例为 PHP 7.4):执行 sudo apt install php7.4-fpm php7.4-mysql -ysudo yum install php php-fpm php-mysqlnd -y
  • 重启服务使更新生效:
    • sudo systemctl restart nginx
    • sudo systemctl restart mysql(或 mariadb
    • sudo systemctl restart php7.4-fpm(按实际 PHP 版本调整)
  • 验证版本:
    • nginx -vmysql --version(或 mariadb --version)、php -v
  • 可选安全加固:MySQL 执行 sudo mysql_secure_installation
    以上为标准就地更新路径,适用于绝大多数 LNMP 场景。

三 跨小版本或主版本升级

  • 数据库跨版本(如 MySQL 5.7 → 8.0MariaDB 10.x → 11.x):
    • 先完整备份(数据与配置),在测试环境验证;
    • 按官方升级文档执行,必要时使用 mysql_upgrade(MySQL)并重启服务;
    • 升级后复核用户权限、SQL 模式与字符集。
  • PHP 主版本切换(如 7.4 → 8.2):
    • 并行安装新版本 PHP-FPM,调整 Nginx fastcgi_pass 指向新套接字(如 /var/run/php/php8.2-fpm.sock),逐步切量;
    • 按需安装扩展(如 php8.2-mbstring、php8.2-curl、php8.2-xml、php8.2-zip),确认应用无兼容性问题后再下线旧版本。
  • 编译安装场景(如从源码升级 Nginx/PHP/MySQL):
    • 下载目标版本源码,按现有编译参数配置(如 ./configure 启用 SSL/HTTP/2 等),执行 make && make install
    • 用新配置替换旧配置并平滑重启服务。
      跨版本升级风险较高,务必在测试环境充分验证并准备快速回滚。

四 一键脚本与容器化场景

  • 一键脚本(如 lnmp.org 提供的脚本):
    • 下载并执行脚本,使用如 sudo ./upgrade.sh php 指定组件升级;
    • 适合快速维护,但升级前仍建议备份并确认脚本来源可信。
  • Docker 容器化:
    • 直接更新镜像标签并重建容器(如 docker-compose pull && docker-compose up -d),注意挂载卷与配置映射保持一致。
      上述方式可简化操作,但同样需要备份与回滚预案。

五 常见问题与回滚建议

  • 配置语法检查:更新后先执行 sudo nginx -t 校验 Nginx 配置,再重启服务,避免语法错误导致中断。
  • 服务状态与健康检查:使用 systemctl status 查看 nginx/mysql/php-fpm 状态,访问站点与接口验证功能。
  • 日志排查:出现异常时优先查看 Nginx 错误日志PHP-FPM 日志MySQL 错误日志
  • 快速回滚:
    • 包管理场景:使用包管理器降级到旧版本(如 apt install nginx=<旧版本>yum downgrade);
    • 源码/脚本场景:切换回旧安装目录或旧镜像标签,恢复备份配置与数据。
      通过“先检查、再重启、后验证”的流程,可显著降低更新故障的影响范围。

0