温馨提示×

Linux LAMP更新与升级指南

小樊
44
2025-12-21 23:04:10
栏目: 智能运维

Linux LAMP 更新与升级指南

一 准备与总体流程

  • 明确目标:是做安全补丁/小版本更新,还是跨小版本/跨主版本升级(如 PHP 7.4 → 8.1MySQL 5.7 → 8.0、操作系统大版本升级)。
  • 完整备份:至少备份数据库与关键配置,并准备快速回滚方案。
    • 数据库:使用 mysqldump 全量备份(示例:mysqldump -u root -p --single-transaction --routines --triggers --databases 你的库 > backup.sql)。
    • 文件与配置:打包 /var/www/etc/apache2/etc/php/etc/my.cnf.d 等目录。
    • 系统快照:如为虚拟机/云主机,创建快照以便一键回滚。
  • 维护窗口与回滚预案:选择低峰时段,准备回滚包与回滚步骤文档。
  • 检查可用空间与依赖:确保磁盘空间充足,了解组件间的依赖变化废弃特性
  • 变更记录:记录当前版本与关键配置,便于比对与审计。

二 通用更新步骤

  • 系统层面更新
    • Debian/Ubuntu:
      • 更新索引与升级:sudo apt update && sudo apt upgrade
      • 处理依赖变化:sudo apt full-upgrade(必要时重启:sudo reboot)
    • CentOS/RHEL(或兼容发行版):
      • 全量升级:sudo yum update -y
      • 仅安全更新:sudo yum update --security -y(需先安装 yum-security 插件)
  • 组件更新
    • Apache
      • Debian/Ubuntu:sudo apt install --only-upgrade apache2
      • CentOS/RHEL:sudo yum update httpd
      • 重启:sudo systemctl restart apache2
    • MariaDB/MySQL
      • Debian/Ubuntu:sudo apt install --only-upgrade mariadb-server(或 mysql-server)
      • CentOS/RHEL:sudo yum update mariadb-server(或 mysql-server)
      • 重启:sudo systemctl restart mariadb(或 mysqld)
      • 建议运行:sudo mysql_secure_installation(按需)
    • PHP
      • Debian/Ubuntu:sudo apt install --only-upgrade php libapache2-mod-php php-mysql(多版本并存时指定如 php8.1
      • CentOS/RHEL:sudo yum update php php-mysql
      • 重启:sudo systemctl restart apache2(或 php-fpm)
  • 验证
    • 版本:apache2 -v、mysql --version(或 mariadb --version)、php -v
    • 连通与解析:curl -I http://localhost;必要时创建 /var/www/html/info.php 验证 PHP 加载
    • 日志:检查 /var/log/apache2/error.log/var/log/mysql/error.log 是否有异常
  • 自动化安全更新(Debian/Ubuntu)
    • 配置无人值守升级:sudo apt install unattended-upgrades && sudo dpkg-reconfigure unattended-upgrades

三 发行版与版本切换要点

  • Debian/Ubuntu
    • 多版本 PHP:使用 ondrej/php PPA 或发行版提供的 Sury 仓库,按需安装/切换版本(如 php7.4php8.1php8.2),并启用对应 libapache2-mod-phpX.Yphp-fpm
    • 示例(切换到 PHP 8.1):sudo apt install php8.1 libapache2-mod-php8.1 php8.1-mysql && sudo a2dismod php7.4 && sudo a2enmod php8.1 && sudo systemctl restart apache2
  • CentOS/RHEL
    • 使用 yum 管理软件包与依赖,必要时启用 EPEL/Remi 仓库获取新版 PHP 与扩展。
    • 示例(启用 Remi 后升级到 PHP 8.1):sudo yum-config-manager --enable remi-php81 && sudo yum update php php-mysql && sudo systemctl restart httpd
  • Arch Linux
    • 滚动更新:sudo pacman -Syu
    • 组件:sudo pacman -S apache、sudo pacman -S mariadb(或 mysql)、sudo pacman -S php php-apache(按需启用模块与 FPM)

四 回滚与验证

  • 快速回滚
    • 包级回滚:优先使用包管理器历史或快照回滚(如 apt 的 held 包/降级、yum 的版本锁定或快照恢复)。
    • 数据与配置:用备份恢复 数据库配置文件,再重启服务。
  • 功能与性能验证
    • 应用自检:登录后台、跑冒烟测试、检查关键业务接口与定时任务。
    • 错误与性能:复查 error.log、慢查询日志(如开启 slow_query_log)、监控 CPU/内存/连接数 是否异常。
    • 安全与合规:确认 TLS/HTTPS 正常、禁用不必要模块与端口、核对 防火墙 规则(HTTP/HTTPS 放行)。

五 注意事项与风险提示

  • 生产环境务必先备份并选择低峰时段操作;跨版本升级(尤其是 PHPMySQL/MariaDB)可能引入兼容性功能废弃问题,需先在测试环境验证。
  • 如仍在 CentOS 7,请注意其已于2024-12-30停服,后续无官方补丁,建议规划迁移至 AlmaLinux/Rocky Linux 8/9RHEL 等受支持系统。
  • 防火墙与端口:确保 HTTP/HTTPS 放行(如 firewalld:sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload)。
  • 安全更新优先:在资源紧张或稳定性要求高的场景,优先执行仅安全更新(如 yum update --securityunattended-upgrades)。

0