LNMP更新升级方法
一 升级前准备
- 备份关键数据与配置:数据库全量备份(如 mysqldump -u root -p --all-databases > backup.sql)、网站目录(如 /var/www/html)、以及 Nginx 配置(如 /etc/nginx/nginx.conf)。
- 检查可升级包与版本:
- Debian/Ubuntu:执行 sudo apt list --upgradable | grep -E ‘nginx|mariadb|mysql|php’ 查看可升级项。
- 校验配置与日志定位:
- Nginx 配置语法:sudo nginx -t;服务日志:/var/log/nginx/error.log;MariaDB 错误日志:/var/log/mysql/error.log。
- 建议在维护时段操作,并确保有回滚方案(快照/备份)。
二 使用发行版包管理器更新(通用、低风险)
- Debian/Ubuntu
- 系统更新:sudo apt update && sudo apt upgrade -y
- 组件更新与重启:
- Nginx:sudo apt install nginx -y && sudo systemctl restart nginx
- MariaDB/MySQL:sudo apt install mariadb-server -y(或 mysql-server),完成后执行安全设置 sudo mysql_secure_installation,再 sudo systemctl restart mariadb/mysql
- PHP(示例为 PHP 7.4):sudo apt install php7.4 php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring -y && sudo systemctl restart php7.4-fpm
- CentOS/RHEL
- 系统更新:sudo yum update -y
- 组件更新与重启:
- Nginx:sudo yum install nginx -y && sudo systemctl start nginx && sudo systemctl enable nginx
- MariaDB/MySQL:sudo yum install mariadb-server mariadb -y && sudo systemctl start mariadb && sudo systemctl enable mariadb && sudo mysql_secure_installation
- PHP(按需选择版本与模块):sudo yum install php php-fpm php-mysqlnd php-mbstring php-gd -y && sudo systemctl enable php-fpm && sudo systemctl restart php-fpm
- 版本核验:nginx -v、mysql --version 或 mariadb --version、php -v。
三 使用 LNMP 一键安装包的升级脚本(军哥 LNMP)
- 进入当初解压的 LNMP 安装包目录(升级脚本需在该目录内运行)。
- 常用升级命令:
- Nginx:执行 ./upgrade.sh nginx,按提示输入目标版本号(如 1.24.x),支持平滑升级。
- MySQL:执行 ./upgrade.sh mysql,先输入 root 密码,再输入目标 MySQL 版本号。
- MariaDB:执行 ./upgrade.sh mariadb,按提示输入目标 MariaDB 版本号。
- MySQL 转 MariaDB:执行 ./upgrade.sh m2m,按交互提示完成迁移。
- PHP:执行 ./upgrade.sh php,选择需要的 PHP 版本。
- phpMyAdmin:执行 ./upgrade.sh phpa。
- 升级过程会在 /root 生成类似 mysql_upgrade_日期.log 的日志,便于排错。
四 回滚与常见问题处理
- 快速回滚思路:
- 包管理器方案:使用包管理器降级到旧版本(如 apt install nginx=<旧版本> 或 yum downgrade nginx),并恢复配置文件与网站数据。
- 一键脚本方案:利用脚本生成的备份与日志,按提示回滚或重新执行升级脚本选择旧版本。
- 常见问题与要点:
- 配置文件冲突:升级提示覆盖时,先备份现有配置,再按需合并新配置。
- 服务启动失败:优先执行配置校验(如 nginx -t),并查看对应错误日志定位问题。
- PHP-FPM 版本匹配:确保 Nginx 中 fastcgi_pass 指向正确的 PHP-FPM 套接字/端口(如 /run/php/php7.4-fpm.sock 或 127.0.0.1:9000)。
- 数据库升级风险:跨小版本通常较安全,跨大版本(如 MySQL 5.7 → 8.0)务必先全量备份并充分测试。