首页主机资讯CentOS Apache2 怎样进行版本升级

CentOS Apache2 怎样进行版本升级

时间2025-11-18 16:31:06发布访客分类主机资讯浏览407
导读:CentOS 上升级 Apache2 的可行方案 一 升级前准备 明确系统版本与包管理器:CentOS 7 使用 yum,CentOS 8 使用 dnf。 完整备份:配置文件(/etc/httpd)、网站根目录(/var/www/html...

CentOS 上升级 Apache2 的可行方案

一 升级前准备

  • 明确系统版本与包管理器:CentOS 7 使用 yumCentOS 8 使用 dnf
  • 完整备份:配置文件(/etc/httpd)、网站根目录(/var/www/html)、SSL 证书与密钥、数据库等。
  • 维护窗口与回滚方案:准备回滚包或快照,先停写或切到维护页。
  • 检查依赖与兼容性:确认与现有应用、模块(如 PHP、SSL、反向代理)的兼容性。
  • 防火墙放行:确保 HTTP/HTTPS(80/443) 已放行。
    以上准备可显著降低升级风险并确保可回退。

二 方法一 使用系统仓库升级(推荐)

  • 适用于希望保留系统包管理、便于后续维护的场景。
  • 步骤概览:
    1. 备份:
      sudo cp -r /etc/httpd /etc/httpd.bak
      sudo cp -r /var/www/html /var/www/html.bak
    2. 更新索引与系统:
      CentOS 7:sudo yum update -y
      CentOS 8:sudo dnf update -y
    3. 启用 EPEL(若需要):sudo yum install -y epel-release(或 dnf install -y epel-release)
    4. 升级或重装 httpd:sudo yum install -y httpd(或 dnf install -y httpd)
    5. 语法检查与启动:
      sudo apachectl configtest
      sudo systemctl restart httpd
      sudo systemctl enable httpd
    6. 验证版本:apachectl -v 或 httpd -v
    7. 防火墙放行(如未放行):
      sudo firewall-cmd --permanent --add-service=http
      sudo firewall-cmd --permanent --add-service=https
      sudo firewall-cmd --reload
    8. 观察日志:tail -f /var/log/httpd/error_log
  • 说明:系统仓库的版本通常较稳定,但可能并非“最新上游版本”。升级后务必做业务回归测试。

三 方法二 使用 Software Collections SCL 或第三方仓库获取较新版本

  • 适用于需要较新特性或版本的场景(如 CentOS 7 上的 httpd24u)。
  • 步骤概览:
    1. 备份(同上)。
    2. 安装 SCL/第三方仓库(以 IUS 为例):sudo yum install -y https://repo.ius.io/ius-release-el7.rpm
    3. 安装新版本:sudo yum install -y httpd24u
    4. 启动新服务并设置开机自启:
      sudo systemctl start httpd24u
      sudo systemctl enable httpd24u
    5. 如旧版 httpd 仍运行,先停用:sudo systemctl disable --now httpd
    6. 验证:/usr/sbin/httpd24u -v
    7. 注意:SCL/第三方仓库与主仓库并行,服务单元名与二进制路径可能不同,需调整监控、备份与自启脚本。
  • 说明:SCL 能在不替换系统 httpd 的前提下提供较新版本,便于回滚与共存。

四 方法三 从源码编译安装(获取最新上游版本)

  • 适用于必须锁定特定上游版本或启用自定义编译参数的场景。
  • 步骤概览:
    1. 备份(同上)。
    2. 安装编译依赖:
      sudo yum groupinstall -y “Development Tools”
      sudo yum install -y apr-devel apr-util-devel pcre-devel openssl-devel
    3. 下载与解压:
      wget https://www.apache.org/dyn/closer.cgi?action=download& filename=httpd/httpd-2.4.62.tar.gz
      tar xf httpd-2.4.62.tar.gz & & cd httpd-2.4.62
    4. 配置(可按需调整):
      ./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl --with-mpm=prefork
    5. 编译与安装:make -j$(nproc) & & sudo make install
    6. 平滑切换:
      sudo mv /usr/sbin/httpd /usr/sbin/httpd.old
      sudo ln -sfn /usr/local/apache2/bin/httpd /usr/sbin/httpd
      sudo ln -sfn /usr/local/apache2/bin/apachectl /usr/sbin/apachectl
    7. 使用系统服务管理(建议新建 systemd 单元,或复用 httpd.service 并指向新二进制):
      sudo systemctl daemon-reload
      sudo systemctl restart httpd
    8. 验证:/usr/local/apache2/bin/httpd -v
  • 风险提示:源码安装与系统包分离,后续安全更新需自行维护;务必做好回滚与监控。

五 升级后验证与回滚

  • 验证清单:
    • 语法与配置:sudo apachectl configtest
    • 运行状态:sudo systemctl status httpd(或 httpd24u)
    • 版本:apachectl -v
    • 业务回归:首页、API、静态资源、SSL、反向代理、.htaccess 规则等
    • 日志:tail -n50 -f /var/log/httpd/{ error,access} _log
  • 快速回滚:
    • 仓库升级:sudo yum downgrade -y httpd(或 dnf downgrade -y httpd);SCL:sudo yum remove -y httpd24u & & sudo systemctl enable --now httpd
    • 源码安装:恢复二进制与配置(如将 /usr/sbin/httpd 换回 httpd.old),重启服务
  • 建议:升级前创建系统快照或 LVM 快照,变更单点前先在测试环境验证。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS Apache2 怎样进行版本升级
本文地址: https://pptw.com/jishu/750248.html
如何在 CentOS 上配置 Apache2 的缓存 如何优化 CentOS Apache2 的内存使用

游客 回复需填写必要信息