温馨提示×

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-FPMNginx 的 socket/user/group 配置一致性。
  • 一键安装包
    • 若使用 LNMP 一键安装包,优先使用其提供的升级脚本(如 ./upgrade.sh php),减少手工误差。

三 回滚与验证

  • 快速回滚:优先用已备份的旧包/旧配置恢复;若为仓库升级,可尝试 yum downgrade 回到上一版本;源码安装需准备可回退的编译产物与启动脚本。
  • 服务状态:重启后用 systemctl status nginx/mysqld/php-fpm 检查;Nginx 可 nginx -t 再重载。
  • 版本与连通性:执行 nginx -vmysql -Vmariadb -Vphp -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.logPHP-FPM 日志与监控告警,第一时间发现问题。

五 建议的更新顺序与最小化停机方案

  • 顺序建议:系统补丁 → Nginx(可热升级/平滑重启)→ PHP(先 FPM 滚动或蓝绿)→ MySQL/MariaDB(先备份与只读演练,再升级与校验)。
  • 最小化停机:利用 Nginx 热升级蓝绿/金丝雀发布降低影响;数据库升级前设置 read_only 并充分备份,升级后逐步恢复写入并回归验证。

0