如何升级Linux LNMP版本
导读:升级前准备与总体策略 明确升级范围:是仅做安全补丁级的小版本更新,还是跨版本的大版本升级(如 PHP 7.x → 8.x、MySQL 5.7 → 8.0)。 完整备份: 数据与配置:数据库全量备份(如 mysqldump --all-d...
升级前准备与总体策略
- 明确升级范围:是仅做安全补丁级的小版本更新,还是跨版本的大版本升级(如 PHP 7.x → 8.x、MySQL 5.7 → 8.0)。
- 完整备份:
- 数据与配置:数据库全量备份(如 mysqldump --all-databases)、网站目录(如 /var/www)、Nginx/PHP 配置(如 /etc/nginx/、/etc/php/)。
- 版本快照:记录当前组件版本(见下方“版本检查命令”)。
- 兼容性评估:核对应用对 PHP 扩展/语法、MySQL 版本特性、Nginx 模块的兼容性,必要时先在测试环境验证。
- 回滚方案:保留旧版本二进制/安装包与配置,准备快速回滚脚本或服务切换方案。
- 维护窗口与通知:选择低峰时段,提前通知业务方。
版本检查与升级路径
- 版本检查命令:
- Nginx:nginx -v
- MySQL:mysql -V 或登录后执行 SELECT VERSION();
- PHP:php -v
- 升级路径建议:
- 小版本(安全/补丁):优先使用系统包管理器在线升级,步骤简单、回滚容易。
- 大版本(跨主线):建议新建并并行一套环境进行灰度验证,验证通过后切换流量(如 Nginx upstream 切换或负载均衡权重调整)。
- 兼容性要点:
- PHP 主版本升级常伴随扩展与语法变更(如废弃/移除扩展、参数默认值变化)。
- MySQL 8.0 在认证、数据类型、默认值等方面变化较大,需重点验证应用连接与 SQL 行为。
- Nginx 与 PHP-FPM 通过 FastCGI 通信,通常无直接版本耦合,但需确保 **PHP-FPM 监听方式(TCP/Unix Socket)**与 Nginx 配置一致。
按发行版执行升级
- Debian/Ubuntu(APT 系)
- 系统与组件更新:
- 更新索引:sudo apt update
- 安全/补丁升级:sudo apt upgrade
- 跨版本升级(如 Ubuntu 20.04 → 22.04):sudo do-release-upgrade
- Nginx:sudo apt install --only-upgrade nginx & & sudo systemctl restart nginx
- MySQL/MariaDB:
- 备份:mysqldump -u root -p --all-databases > backup.sql
- 升级:sudo apt install --only-upgrade mysql-server(或 mariadb-server)
- 安全设置:sudo mysql_secure_installation
- PHP:
- 升级 CLI/FPM 与常用扩展:sudo apt install --only-upgrade php php-fpm php-mysql
- 按需补充扩展(如 php-gd 等),完成后重启:sudo systemctl restart php-fpm
- 验证:nginx -v、mysql -V、php -v
- 系统与组件更新:
- CentOS/RHEL(YUM/DNF 系)
- 系统与组件更新:
- sudo yum update(或 sudo dnf upgrade)
- Nginx:sudo yum install --only-upgrade nginx & & sudo systemctl restart nginx
- MySQL/MariaDB:
- 备份:mysqldump -u root -p --all-databases > backup.sql
- 升级:sudo yum install --only-upgrade mysql-server(或 mariadb-server)
- 安全设置:sudo mysql_secure_installation
- PHP(以 PHP 7.4 为例):sudo yum install php php-fpm php-mysqlnd & & sudo systemctl restart php-fpm
- 验证:nginx -v、mysql -V、php -v
- 系统与组件更新:
- 说明:以上为常见路径,具体包名与可用版本取决于你的发行版版本与仓库配置。
使用 LNMP 一键安装包的升级
- 适用场景:你最初通过 lnmp.org 的一键安装包部署。
- 基本流程:
- 进入安装包目录(如 /usr/local/lnmp1.6/),执行升级脚本:./upgrade.sh(按交互选择组件与目标版本)。
- 跨大版本管理脚本升级(如 1.5 → 1.8):
- 下载并解压新版本脚本:wget http://soft.vpser.net/lnmp/lnmp1.8.tar.gz & & tar zxf lnmp1.8.tar.gz & & cd lnmp1.8
- 执行升级脚本:./upgrade1.x-1.8.sh
- 升级完成后用 php -v 等命令核对版本。
- 重要提示:一键包升级脚本面向其自身目录结构与组件组合,跨版本升级务必先备份并按脚本指引操作。
升级后验证与回滚
- 快速验证:
- 进程与端口:systemctl status nginx php-fpm mysqld,确认监听端口(如 80/443、9000 或 socket)正常。
- 版本核对:nginx -v、mysql -V、php -v;检查关键扩展(如 mysqli/pdo_mysql、gd、opcache)。
- 应用自检:登录后台、执行关键业务操作,查看 Nginx error.log、PHP-FPM error.log、MySQL error.log 是否有异常。
- 性能与安全:
- 适度调整 Nginx worker_processes/worker_connections、PHP-FPM pm.max_children/opcache 等参数;关闭不必要的模块与扩展,收紧目录权限。
- 回滚策略:
- 包管理升级:使用包管理器降级到旧版本或快照回滚(如 apt install package=version、yum downgrade)。
- 源码/一键包:切换到备份的旧目录或旧安装包,恢复数据库与配置文件后重启服务。
- 风险提示:跨大版本升级(尤其是 MySQL 5.7 → 8.0、PHP 7.x → 8.x)可能引发兼容性问题;务必在测试环境充分验证,并在维护窗口内执行。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何升级Linux LNMP版本
本文地址: https://pptw.com/jishu/752502.html
