以下是 通过 RPM 包手动安装 Apache HTTP Server 的详细教程(适用于 CentOS/RHEL 系统):
一、下载 RPM 包
从官方仓库获取
如果系统已配置仓库(如 EPEL),可直接用 yum 或 dnf 下载 RPM 包:
bash复制代码
# CentOS 7 及以下
sudo yum install httpd --downloadonly --downloaddir=.
# CentOS 8+/RHEL 8+
sudo dnf install httpd --downloadonly --downloaddir=.
手动下载
若需指定版本,可从 https://httpd.apache.org/download.cgi 或第三方仓库(如 https://rpmfind.net/)下载对应系统的 RPM 包。
二、安装 RPM 包
1. 直接安装(可能缺少依赖)
bash复制代码sudo rpm -ivh httpd-*.rpm
问题:可能提示依赖缺失(如 apr, apr-util, pcre 等)。
2. 自动解决依赖(推荐)
使用 yum 或 dnf 自动安装并处理依赖:
bash复制代码
# CentOS 7 及以下
sudo yum localinstall httpd-*.rpm
# CentOS 8+/RHEL 8+
sudo dnf localinstall httpd-*.rpm
三、手动处理依赖(可选)
如果坚持手动安装,需逐一下载并安装依赖包:
查看缺失的依赖:
bash复制代码rpm -qpR httpd-*.rpm
根据提示下载所有依赖的 RPM 包,并按顺序安装:
bash复制代码sudo rpm -ivh dependency1.rpm dependency2.rpm ... httpd-*.rpm
四、配置与启动 Apache
安装完成后,操作与之前教程一致:
bash复制代码
# 启动服务
sudo systemctl start httpd
# 设置开机自启
sudo systemctl enable httpd
# 检查状态
sudo systemctl status httpd
五、防火墙配置
bash复制代码# 开放 HTTP/HTTPS 端口sudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --reload
六、测试访问
浏览器访问:
复制代码http://服务器IP 或 http://localhost
七、常见问题
依赖缺失
尽量使用 yum/dnf localinstall 自动解决依赖。
SELinux 阻止访问
临时禁用:
bash复制代码sudo setenforce 0
永久禁用(编辑 /etc/selinux/config):
bash复制代码sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
服务启动失败
查看日志:
bash复制代码journalctl -xe -u httpd
八、卸载 Apache
bash复制代码sudo yum remove httpd # CentOS 7 及以下sudo dnf remove httpd # CentOS 8+/RHEL 8+
总结
推荐方法:使用 yum/dnf 直接安装,避免手动处理依赖。
手动 RPM 适用场景:需要特定版本或离线环境。
依赖管理:优先通过包管理器自动解决,简化流程。