CentOS 8 安装配置 Apache Web 服务器(httpd)完全教程

CentOS 8 安装配置 Apache Web 服务器(httpd)完全教程

李忠衍
2025-03-31 / 0 评论 / 188 阅读 / 正在检测是否收录...
Apache 是目前使用最广泛的 Web 服务器之一。本文从安装到配置虚拟主机、HTTPS,手把手带你搭建一个完整的 Web 服务环境。

什么是 Apache?

Apache HTTP Server(软件包名为 httpd)是一个开源的 Web 服务器软件,由 Apache 软件基金会维护。它可以托管静态网站、动态网站(配合 PHP),也可以作为反向代理使用。

1. 安装 Apache

yum install httpd -y

# 查看版本确认安装成功
httpd -v

2. 启动与管理服务

systemctl start httpd          # 启动服务
systemctl enable httpd         # 设置开机自启
systemctl status httpd         # 查看运行状态(active (running) 为正常)

验证是否启动成功:

curl -I http://localhost       # 应返回 HTTP/1.1 200 OK

打开浏览器访问 http://服务器IP,如果看到 Apache 默认测试页面,说明安装成功。

3. 防火墙配置

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
firewall-cmd --list-all        # 确认放行

4. Apache 核心目录结构

路径说明
/etc/httpd/conf/httpd.conf主配置文件
/etc/httpd/conf.d/子配置文件目录(推荐在此新增配置)
/var/www/html/默认网站根目录
/var/log/httpd/access_log访问日志
/var/log/httpd/error_log错误日志(排错利器)

5. 配置虚拟主机(VirtualHost)

虚拟主机让你在一台服务器上托管多个网站。

创建网站目录:

mkdir -p /var/www/bytecho
echo "<h1>Hello from Bytecho!</h1>" > /var/www/bytecho/index.html

创建虚拟主机配置:

新建 /etc/httpd/conf.d/bytecho.conf

<VirtualHost *:80>
    ServerName bytecho.cn
    ServerAlias www.bytecho.cn
    DocumentRoot /var/www/bytecho

    <Directory /var/www/bytecho>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/bytecho-error.log
    CustomLog /var/log/httpd/bytecho-access.log combined
</VirtualHost>

配置说明:

  • ServerName — 域名
  • DocumentRoot — 网站文件目录
  • Options -Indexes — 禁止目录列表(安全)
  • Require all granted — 允许所有 IP 访问

重启 Apache:

httpd -t                     # 先检查配置语法(重要!)
systemctl reload httpd        # 平滑重载配置(不中断服务)

6. 配置 HTTPS(SSL 证书)

安装 mod_ssl:

yum install mod_ssl -y

创建自签名证书(测试用):

openssl req -x509 -nodes -days 365 -newkey rsa:2048   -keyout /etc/pki/tls/private/bytecho.key   -out /etc/pki/tls/certs/bytecho.crt   -subj "/CN=bytecho.cn"

创建 HTTPS 虚拟主机:

编辑 /etc/httpd/conf.d/bytecho-ssl.conf

<VirtualHost *:443>
    ServerName bytecho.cn
    DocumentRoot /var/www/bytecho

    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/bytecho.crt
    SSLCertificateKeyFile /etc/pki/tls/private/bytecho.key

    <Directory /var/www/bytecho>
        Require all granted
    </Directory>
</VirtualHost>
httpd -t && systemctl reload httpd

7. 查看日志排错

tail -f /var/log/httpd/error_log          # 实时查看错误日志
tail -f /var/log/httpd/access_log         # 查看访问日志
tail -f /var/log/httpd/bytecho-error.log  # 查看特定网站的日志

常见问题

Q:浏览器访问报 403 Forbidden?

检查目录权限:chmod 755 /var/www/bytecho,并确认 SELinux 没有阻止:restorecon -Rv /var/www/

Q:httpd -t 报错 Syntax error?

通常是配置文件语法错误,仔细检查 VirtualHost 的尖括号是否匹配,路径是否正确。

Q:改完配置要不要重启?

推荐用 systemctl reload httpd 而不是 restart。reload 不断开已有连接,restart 会中断所有正在处理的请求。


掌握了 Apache 的基本配置,你已经可以自己托管网站了。接下来可以学习 Nginx,了解两款服务器的区别和适用场景。

0

评论 (0)

取消