温馨提示×

怎样升级centos lnmp版本

小樊
42
2025-12-09 19:22:34
栏目: 智能运维

升级前准备

  • 明确目标版本与升级方式:是做小版本修补(如 Nginx 1.24 → 1.26、PHP 7.4 → 8.0)还是跨大版本(如 MySQL 5.7 → 8.0)。跨大版本通常需要迁移数据/配置,风险更高。
  • 完整备份:
    • 网站文件:/var/www/html
    • 数据库:mysqldump -u root -p --all-databases > /var/backups/all-databases.sql
    • 配置:/etc/nginx//etc/my.cnf/etc/php.ini/etc/php-fpm.d/
  • 准备回滚方案:保留旧版本二进制与配置,记录当前版本号,确保可快速回退。
  • 选择安装源:优先使用官方或可信仓库(如 EPEL、Nginx 官方仓库、MySQL Yum 仓库、Remi),避免混用导致依赖冲突。
  • 维护窗口与通知:选择低峰时段,提前通知业务方。

升级流程总览

  • 步骤顺序建议:Nginx → 数据库(MySQL/MariaDB)→ PHP → 验证与回滚预案
  • 通用操作:
    • 更新系统:sudo yum update -y
    • 升级组件:使用各自仓库的 yum update <组件名>
    • 重启服务:systemctl restart <服务名>
    • 验证版本:nginx -vmysql -Vmariadb -Vphp -v
  • 注意:升级后需确保 Nginx 与 PHP-FPM 的通信(如 FastCGI)与权限配置仍然正确。

组件升级要点

  • Nginx
    • 添加仓库(示例为 CentOS 7):
      • EPEL:sudo yum install epel-release -y
      • Nginx 官方:sudo yum install https://nginx.org/packages/mainline/centos/7/$basearch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    • 升级:sudo yum update nginx;重启:sudo systemctl restart nginx;验证:nginx -v
  • MySQL(或 MariaDB)
    • 小版本修补:sudo yum update mysql-community-serversudo yum update mariadb-server mariadb,重启服务。
    • 跨大版本(如 5.7 → 8.0):建议新建 MySQL 8.0 实例,使用 mysqldump 迁移数据,校验后再切换应用连接。
    • 安全与验证:执行 sudo mysql_secure_installation,登录后 SELECT VERSION(); 确认版本。
  • PHP
    • 添加 Remi 仓库(示例为 CentOS 7):
      • sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
      • 启用所需版本:sudo yum-config-manager --enable remi-php74(按需选择 7.4/8.0/8.1/8.2
    • 升级:sudo yum update php\*;重启:sudo systemctl restart php-fpm;验证:php -v
    • 扩展建议:确保安装与业务相关的扩展(如 php-mysqlnd、php-fpm、php-gd、php-curl 等)。

验证与回滚

  • 服务状态:sudo systemctl status nginx mysqld php-fpm,确保均为 active (running)
  • 版本核验:nginx -vmysql -Vmariadb -Vphp -v
  • 功能自检:访问站点首页与关键接口,检查 Nginx 错误日志PHP-FPM 日志MySQL 错误日志 是否异常。
  • 快速回滚:
    • 使用备份的配置文件覆盖新配置;
    • 通过仓库降级版本:sudo yum downgrade <组件名>
    • 数据库回滚:切换到备份实例或导入备份 SQL。

注意事项

  • 跨大版本升级(尤其是 MySQL 5.7 → 8.0)涉及认证插件、SQL 模式、数据类型等变化,务必先在测试环境验证并迁移数据。
  • 避免混用多个第三方仓库,优先使用官方/可信仓库并固定版本。
  • 升级前记录当前版本与关键配置,升级后逐项核对。
  • 若采用源码编译方式,需自行管理升级、启停脚本与依赖,复杂度更高,建议仅在确有定制需求时使用。

0