centos lnmp更新要注意啥
小樊
46
2025-11-22 02:21:19
CentOS 上 LNMP 更新注意事项
一 核心原则与准备
- 先做完整备份:网站目录(如 /var/www/html)、数据库(如 mysqldump -u root -p --all-databases > backup.sql)、关键配置(如 /etc/nginx/、/etc/my.cnf、/etc/php.ini)。升级前停机窗口与回滚预案要到位。
- 选择维护方式:是走系统仓库的小版本与安全补丁更新,还是通过官方/第三方仓库跨小版本升级,策略不同、风险不同。
- 明确组件来源:确认 Nginx/MySQL/MariaDB/PHP 是通过系统仓库、官方仓库还是源码安装,不同来源升级路径与注意事项不同。
- 准备回滚方案:保留旧版本二进制与配置,记录变更;必要时可快速回退到上一个稳定版本。
二 分组件升级要点
- Nginx
- 配置与验证:先备份 /etc/nginx/,升级后用 nginx -t 校验语法,再执行重启。
- 仓库选择:系统仓库更新即可;如需更新到主线版,可添加 Nginx 官方仓库后执行更新。
- MySQL/MariaDB
- 备份与升级:先全量备份数据库;MySQL 可通过官方仓库更新(如 mysql-community-server),MariaDB 用系统或官方仓库更新。
- 重大版本差异:跨小版本(如 5.7 → 8.0)可能涉及认证插件、SQL 模式、系统表结构变化,务必按官方升级流程执行并逐项验证。
- PHP
- 多版本管理:建议用 Remi 等仓库的模块化方式切换版本(如启用 remi-php74),避免直接混装。
- 扩展一致性:升级后核对 php -m 与业务所需扩展(如 php-mysqlnd、php-fpm、opcache)是否齐全;注意 PHP-FPM 与 Nginx 的 socket/user/group 配置一致性。
- 一键安装包
- 若使用 LNMP 一键安装包,优先使用其提供的升级脚本(如 ./upgrade.sh php),减少手工误差。
三 回滚与验证
- 快速回滚:优先用已备份的旧包/旧配置恢复;若为仓库升级,可尝试 yum downgrade 回到上一版本;源码安装需准备可回退的编译产物与启动脚本。
- 服务状态:重启后用 systemctl status nginx/mysqld/php-fpm 检查;Nginx 可 nginx -t 再重载。
- 版本与连通性:执行 nginx -v、mysql -V 或 mariadb -V、php -v 确认版本;访问站点与后台,验证 数据库连接、登录认证、URL 重写、文件上传 等核心功能。
四 常见坑与规避
- 依赖与冲突:跨仓库混用易导致依赖冲突;统一仓库来源,必要时用 yum provides 定位提供方,避免误装。
- 配置不兼容:升级后 Nginx 指令、MySQL 系统变量、PHP 配置与扩展可能变更;逐项比对变更并灰度验证。
- 扩展与 FPM:升级 PHP 后确认 php-fpm 已启动且监听方式(socket/file)与 Nginx 一致;检查 opcache 与业务兼容性。
- 应用兼容性:框架、CMS、插件对 PHP 版本与扩展有要求;升级前在测试环境验证,逐步放量。
- 日志与告警:更新过程与变更后,重点查看 /var/log/nginx/error.log、/var/log/mysqld.log、PHP-FPM 日志与监控告警,第一时间发现问题。
五 建议的更新顺序与最小化停机方案
- 顺序建议:系统补丁 → Nginx(可热升级/平滑重启)→ PHP(先 FPM 滚动或蓝绿)→ MySQL/MariaDB(先备份与只读演练,再升级与校验)。
- 最小化停机:利用 Nginx 热升级或蓝绿/金丝雀发布降低影响;数据库升级前设置 read_only 并充分备份,升级后逐步恢复写入并回归验证。