rpm 安装

阿里云服务器

以下是 通过 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 适用场景:需要特定版本或离线环境。

依赖管理:优先通过包管理器自动解决,简化流程。