Apache HTTP Server 是全球最广泛使用的 Web 服务器之一,以其稳定性、灵活性和强大的功能而闻名,在 CentOS 系统上部署和配置 Apache 是许多服务器管理员的基本技能,本文将详细介绍如何在 CentOS 上安装、配置和管理 Apache 服务器,涵盖从基础安装到高级配置的各个方面,帮助您快速上手并充分利用这一强大的工具。

安装 Apache 服务器
在 CentOS 上,Apache 的软件包名为 httpd,确保您的系统已更新到最新的软件包列表,打开终端,以 root 或具有 sudo 权限的用户身份运行以下命令:
sudo yum update -y sudo yum install httpd -y
安装完成后,启动 Apache 服务并设置为开机自启,以确保服务器重启后 Apache 能够自动运行:
sudo systemctl start httpd sudo systemctl enable httpd
您可以通过访问服务器的 IP 地址或域名来验证 Apache 是否成功运行,如果看到 Apache 的默认测试页面,说明安装成功,默认情况下,Apache 的主配置文件位于 /etc/httpd/conf/httpd.conf,网站根目录位于 /var/www/html。
基本配置与管理
Apache 的核心配置文件是 httpd.conf,但为了便于管理,建议将虚拟主机配置等设置放在独立的文件中,让我们熟悉一些基本的 Apache 管理命令,要检查 Apache 的运行状态,可以使用:
sudo systemctl status httpd
要停止、重启或重新加载 Apache 配置,可以分别使用以下命令:
sudo systemctl stop httpd # 停止服务 sudo systemctl restart httpd # 重启服务(完全重启) sudo systemctl reload httpd # 重新加载配置(不中断连接)
在修改配置文件后,建议先使用 apachectl configtest 命令检查配置语法是否正确,避免因配置错误导致服务无法启动:
sudo apachectl configtest
如果输出中显示 Syntax OK,则表示配置文件语法正确。
配置虚拟主机
虚拟主机允许您在单个服务器上托管多个网站,每个虚拟主机都有自己的域名和独立的配置,以下是创建一个基于名称的虚拟主机的步骤:
为您的网站创建一个目录作为根目录,
sudo mkdir -p /var/www/example.com
设置该目录的所有权和权限:

sudo chown -R apache:apache /var/www/example.com sudo chmod -R 755 /var/www/example.com
创建虚拟主机配置文件,在 /etc/httpd/conf.d/ 目录下创建一个名为 example.com.conf 的文件(文件名以 .conf 结尾即可):
sudo nano /etc/httpd/conf.d/example.com.conf
在文件中添加以下内容,根据您的域名和目录路径进行修改:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
<Directory /var/www/example.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/example.com_error.log
CustomLog /var/log/httpd/example.com_access.log combined
</VirtualHost>
保存文件后,重新加载 Apache 配置:
sudo systemctl reload httpd
确保您的域名 DNS 解析指向服务器的 IP 地址,并在 /etc/hosts 文件中添加本地测试解析(如果需要):
sudo nano /etc/hosts
添加以下行:
0.0.1 example.com www.example.com
您可以通过访问 http://example.com 来查看您的网站。
SSL/TLS 安全配置
为了保护网站数据传输的安全,建议为您的虚拟主机启用 SSL/TLS 加密,安装 mod_ssl 模块:
sudo yum install mod_ssl -y
获取 SSL 证书,您可以从 Let's Encrypt 免费获取证书,或使用自签名证书进行测试,以下是使用 Let's Encrypt 的基本步骤:
安装 Certbot:
sudo yum install certbot python3-certbot-apache -y
运行 Certbot 自动获取并配置证书:

sudo certbot --apache -d example.com -d www.example.com
按照提示完成邮箱验证和协议选择后,Certbot 会自动修改您的虚拟主机配置,启用 HTTPS 并重定向 HTTP 流量到 HTTPS,您可以通过访问 https://example.com 验证 HTTPS 是否生效。
日志管理与故障排除
Apache 提供了详细的访问日志和错误日志,帮助您监控网站状态和排查问题,默认情况下,访问日志位于 /var/log/httpd/access_log,错误日志位于 /var/log/httpd/error_log,您可以通过修改虚拟主机配置中的 ErrorLog 和 CustomLog 指令来自定义日志路径和格式。
要查看实时日志流,可以使用 tail 命令:
sudo tail -f /var/log/httpd/error_log # 查看错误日志 sudo tail -f /var/log/httpd/access_log # 查看访问日志
常见的故障排除步骤包括检查配置语法、查看错误日志、确保文件权限正确以及确认防火墙设置是否允许 HTTP(80)和 HTTPS(443)端口流量:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
相关问答 FAQs
如何更改 Apache 的默认网站根目录?
要更改默认网站根目录,首先编辑主配置文件 /etc/httpd/conf/httpd.conf,找到 DocumentRoot 指令并将其修改为您的新目录路径,DocumentRoot "/new/path/to/website",确保修改对应的 <Directory> 段落路径与新目录一致,保存文件后,运行 sudo systemctl reload httpd 使配置生效。
如何限制特定 IP 地址访问 Apache 服务器?
您可以使用 Apache 的 Require 指令来限制 IP 访问,在虚拟主机配置或 .htaccess 文件中,添加以下内容:
<Directory "/var/www/your-site">
Require ip 192.168.1.100 # 允许的 IP 地址
Require all denied # 拒绝其他所有 IP
</Directory>
保存后重新加载 Apache 配置即可,如果需要允许多个 IP,可以在 Require ip 后列出所有 IP 地址,用空格分隔。