在 CentOS 上安装和配置 HTTPD(apache)服务器是一个常见的任务,尤其是在需要搭建 Web 服务时,HTTPD 是一个功能强大、高效且可扩展的 Web 服务器,以下是详细的安装步骤和配置指南:
安装步骤
1、更新系统

在安装任何软件包之前,建议先更新系统的包管理器,打开终端并输入以下命令:
- sudo yum update y
2、检查是否已安装 HTTPD
使用以下命令查看系统中是否已经安装了 HTTPD:
- rpm qa | grep httpd
如果返回结果中包含httpd
,则表示已经安装;否则,继续下一步。
3、安装 HTTPD
使用 Yum 包管理器安装 HTTPD:

- sudo yum install httpd y
安装过程中会自动解决依赖关系并下载相关软件包。
4、启动 HTTPD 服务
安装完成后,启动 Httpd 服务:
- sudo systemctl start httpd
5、设置开机自启
为了确保系统重启后 HTTPD 服务自动启动,执行以下命令:
- sudo systemctl enable httpd
6、检查服务状态

使用以下命令检查 HTTPD 服务是否正常运行:
- sudo systemctl status httpd
7、测试 HTTPD 安装
在浏览器中访问服务器的 IP 地址或域名,如果看到 Apache 的默认欢迎页面,则说明安装成功,http://your_server_ip
配置文件详解
HTTPD 的主要配置文件位于/etc/httpd/conf/httpd.conf
,下面是一些关键配置项的解释:
1、DocumentRoot
指定网站的根目录,默认情况下,HTTPD 将文档根目录设置为/var/www/html
:
- DocumentRoot "/var/www/html"
2、DirectoryIndex
定义当请求目录时,默认显示的文件名,常见的默认文件包括index.html
:
- DirectoryIndex index.html
3、AllowOverride
控制 .htaccess 文件的使用权限,可以设置为None
、All
或AuthConfig
:
- AllowOverride None
4、ErrorLog
指定错误日志的位置,通常位于/var/log/httpd/error_log
:
- ErrorLog "/var/log/httpd/error_log"
5、CustomLog
指定访问日志的位置,通常位于/var/log/httpd/access_log
:
- CustomLog "/var/log/httpd/access_log" combined
常见问题及解决方法
1、端口被占用
如果启动 HTTPD 时提示端口被占用,可以使用以下命令查找占用端口的进程:
- sudo netstat tulnp | grep :80
然后终止相应的进程或更改 HTTPD 的监听端口,在httpd.conf
文件中添加或修改以下行:
- Listen 8080
2、权限问题
如果遇到权限问题,确保/var/www/html
目录及其子目录的权限正确,应设置如下权限:
- sudo chown R apache:apache /var/www/html
- sudo chmod R 755 /var/www/html
3、防火墙设置
确保防火墙允许 HTTP(端口 80)和 HTTPS(端口 443)流量,使用以下命令开放端口:
- sudo firewallcmd permanent addservice=http
- sudo firewallcmd permanent addservice=https
- sudo firewallcmd reload
FAQs
Q1: 如何更改默认的文档根目录?
A1: 要更改默认的文档根目录,可以编辑/etc/httpd/conf/httpd.conf
文件,找到DocumentRoot
行并修改为新的路径,将文档根目录更改为/usr/local/www/data
:
- DocumentRoot "/usr/local/www/data"
创建新的目录并设置适当的权限:
- sudo mkdir p /usr/local/www/data
- sudo chown R apache:apache /usr/local/www/data
- sudo chmod R 755 /usr/local/www/data
重新启动 HTTPD 服务以使更改生效:
- sudo systemctl restart httpd
Q2: 如何在 CentOS 上卸载 HTTPD?
A2: 要卸载 HTTPD,首先停止 HTTPD 服务:
- sudo systemctl stop httpd
然后使用 Yum 包管理器卸载 HTTPD:
- sudo yum remove httpd y
如果还需要删除相关的配置文件和数据,可以手动删除/etc/httpd
目录和/var/www/html
目录:
- sudo rm rf /etc/httpd /var/www/html