在 CentOS 7 上安装 Apache HTTP 服务器并开启测试页

Apache HTTP Server(通常简称 Apache 或 httpd)是世界上最流行的开源 Web 服务器软件之一,由 Apache 软件基金会开发和维护。它以其稳定性、强大的功能和广泛的模块化支持而闻名,是托管网站和 Web 应用程序的可靠选择。

对于系统管理员、开发者和 DevOps 工程师来说,在 CentOS 7 这样的主流 Linux 发行版上熟练部署 Apache 是一项基础且关键的技能。本文将提供一个从零开始的、详细的指南,带领您完成在 CentOS 7 系统上安装 httpd 包、配置防火墙、启动服务,并最终通过浏览器访问默认测试页面的全过程。我们还将涵盖一些常见的最佳实践和故障排除技巧。

目录#

  1. 前提条件
  2. 步骤一:更新系统包
  3. 步骤二:安装 Apache HTTP 服务器
  4. 步骤三:启动并启用 Apache 服务
  5. 步骤四:配置防火墙
  6. 步骤五:访问默认测试页面
  7. 深入理解:默认测试页的位置与内容
  8. 常见问题与故障排除
  9. 最佳实践与下一步
  10. 参考

前提条件#

在开始之前,请确保您具备以下条件:

  • 一台运行 CentOS 7 的服务器:可以是物理机、虚拟机或云服务器实例。
  • 具有 sudo 权限的非 root 用户:出于安全考虑,我们强烈建议不要直接使用 root 用户进行操作。
  • 稳定的网络连接:用于从 YUM 仓库下载软件包。
  • 基本的命令行操作知识

步骤一:更新系统包#

首先,登录到您的 CentOS 7 服务器。作为一个良好的实践,我们先更新系统的软件包到最新版本,以确保安全性和稳定性。

打开终端,执行以下命令:

# 切换到 root 用户,或者使用 sudo 执行后续命令
sudo su -
 
# 更新系统所有已安装的包
yum update -y
  • -y 参数表示自动对所有提示回答 "yes",使过程无需人工干预。

步骤二:安装 Apache HTTP 服务器#

CentOS 7 的默认软件仓库中包含了 Apache 的软件包,其名称为 httpd。安装过程非常简单。

运行以下命令进行安装:

yum install httpd -y

这个命令会执行以下操作:

  1. 从 CentOS 的 YUM 仓库中下载 httpd 软件包及其所有依赖项。
  2. 将软件包安装到系统预定义的标准位置,例如:
    • 配置文件目录:/etc/httpd/
    • 主配置文件:/etc/httpd/conf/httpd.conf
    • 默认网站根目录:/var/www/html/
    • 日志文件目录:/var/log/httpd/

步骤三:启动并启用 Apache 服务#

在 CentOS 7 中,我们使用 systemctl 命令来管理服务。

  1. 启动 Apache 服务:这将立即启动 httpd 服务。

    systemctl start httpd
  2. 设置开机自动启动:这样即使服务器重启,Apache 也会自动运行。

    systemctl enable httpd

    您会看到类似 Created symlink from ... 的输出,表示启动项已创建。

  3. 检查服务状态:验证 Apache 是否正在正常运行。

    systemctl status httpd

    如果服务运行正常,您会看到类似 Active: active (running) 的绿色提示。

步骤四:配置防火墙#

CentOS 7 默认使用 firewalld 作为防火墙管理工具。为了让外部的用户能够访问您的 Web 服务器,您需要开放 HTTP(端口 80)和/或 HTTPS(端口 443)服务。

  1. 永久开放 HTTP 端口(80)

    firewall-cmd --permanent --add-service=http
  2. 如果您计划使用 SSL/TLS,还需要开放 HTTPS 端口(443)

    firewall-cmd --permanent --add-service=https
  3. 重新加载防火墙配置以使更改生效:

    firewall-cmd --reload
  4. 验证规则是否已添加

    firewall-cmd --list-all

    在输出中,您应该能看到 services: 下面列有 http 和(如果添加了)https

步骤五:访问默认测试页面#

现在,所有配置已经完成!您可以通过浏览器访问服务器的 IP 地址或域名来查看 Apache 的默认测试页面。

  1. 查找服务器的 IP 地址(如果您不知道的话):

    ip addr show
  2. 在您的本地计算机的浏览器中,输入以下地址:

    • http://您的服务器IP地址
    • 例如:http://192.168.1.100

如果一切顺利,您将看到一个名为 "Testing 123..." 的 CentOS Apache 测试页面,这表明 Apache 已经成功安装并运行。

深入理解:默认测试页的位置与内容#

这个默认测试页面实际上是一个简单的 HTML 文件。了解它的位置对于后续部署您自己的网站至关重要。

  • 文件位置/var/www/html/index.html

  • 查看内容:您可以使用 cat 命令查看这个文件的内容。

    cat /var/www/html/index.html

    您会看到生成测试页面的 HTML 源代码。

最佳实践:当您准备部署自己的网站时,只需用您的 index.html(或 index.php 等)文件替换掉这个默认文件即可。

常见问题与故障排除#

1. 无法访问测试页面(连接被拒绝)

  • 检查 Apache 服务状态:确保 httpd 服务正在运行 (systemctl status httpd)。

  • 检查防火墙:确认已正确开放了 HTTP 服务 (firewall-cmd --list-all)。

  • 检查端口监听:使用 netstatss 命令检查 Apache 是否在监听 80 端口。

    ss -tunlp | grep :80

    您应该能看到 httpd 进程正在监听 0.0.0.0:80

2. 测试页面显示异常或错误

  • 检查 SELinux 状态:SELinux 可能会阻止 Apache 访问某些文件。您可以暂时将其设置为宽容模式以进行测试:

    setenforce 0

    (注意:这只是一个临时诊断步骤。生产环境中应正确配置 SELinux 策略,而不是禁用它。)

  • 检查日志文件:Apache 的错误日志是解决问题的宝贵资源。查看错误日志:

    tail -f /var/log/httpd/error_log

最佳实践与下一步#

恭喜您成功安装了 Apache!但这仅仅是开始。为了构建一个安全、高效的生产环境,请考虑以下步骤:

  1. 配置虚拟主机(VirtualHost):如果您计划托管多个网站,这是必须的。它为每个网站提供独立的配置。
  2. 安装和配置 SSL/TLS 证书:使用 Let‘s Encrypt 等免费工具为您的网站启用 HTTPS,确保数据传输安全。
  3. 强化安全
    • 保持系统和软件包及时更新。
    • 遵循最小权限原则,谨慎配置文件和目录权限。
    • 考虑使用 ModSecurity 等模块来增强 Web 应用防火墙(WAF)能力。
  4. 安装 PHP 或其它后端语言:如果您需要运行动态网站(如 WordPress、Laravel 等),需要安装相应的解释器(如 php)。
  5. 性能优化:根据您的流量和需求,调整 Apache 的配置参数(如 KeepAlive, MaxRequestWorkers 等)。

参考#


希望这篇详细的指南能帮助您顺利完成 CentOS 7 上 Apache 的安装。如有任何问题,欢迎查阅日志文件或参考官方文档。