一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Linux LAMP维护与升级指南

时间:2026-07-29 16:42:50 编辑:袖梨 来源:一聚教程网

Linux LAMP 更新与升级指南

Linux LAMP更新与升级指南

一 总体流程与准备工作

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

二 常规更新步骤

  • 系统层面更新
    • 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/mysql/error.log、/var/log/apache2/error.log 两处日志判断
  • 自动化安全更新(Debian/Ubuntu)
    • 配置无人值守升级:sudo apt install unattended-upgrades && sudo dpkg-reconfigure unattended-upgrades

三 发行版切换及版本要点

  • Debian/Ubuntu
    • 多版本 PHP:使用 ondrej/php PPA 或发行版提供的 Sury 仓库,按需安装/切换版本(如 php7.4、php8.1、php8.2),并启用对应 libapache2-mod-phpX.Y 或 php-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 的版本锁定或快照恢复)。
    • 配置与数据:通过备份还原 数据库 和 配置文件,随后重启服务。
  • 验证功能和性能
    • 应用自检:进入后台、执行冒烟测试,并核查关键业务接口和定时任务。
    • 监控 CPU/内存/连接数 的异常情况,同时复查慢查询日志(启用 slow_query_log 时)与 error.log,以判断错误和性能问题。
    • 合规与安全:验证 TLS/HTTPS 工作正常,停用不需要的模块和端口,并检查 防火墙 规则(放行 HTTP/HTTPS)。

五 风险提示及注意事项

  • 生产环境操作前必须完成备份并安排在低峰时段;跨版本升级,特别是 PHP、MySQL/MariaDB,可能带来兼容性问题和功能废弃,因此需要先在测试环境验证。
  • CentOS 7 已于2024-12-30停服,官方补丁此后不再提供。仍在使用该系统时,应规划迁移,目标可选受支持的 RHEL 或 AlmaLinux/Rocky Linux 8/9。
  • 防火墙与端口:确保 HTTP/HTTPS 放行(如 firewalld:sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload)。
  • 安全更新优先:在资源紧张或稳定性要求高的场景,优先执行仅安全更新(如 yum update --security 或 unattended-upgrades)。

热门栏目