在 CentOS 系统上搭建一个 HTTP 服务器是一项基础且实用的技能,通常用于部署个人网站、内部应用或进行开发测试,本文将详细介绍如何在单台 CentOS 服务器上安装和配置 Apache HTTP Server(其软件包名为 httpd),整个过程清晰明了,适合初学者操作。
环境准备
在开始之前,请确保您具备以下条件:
- 一台已安装的 CentOS 7 或 CentOS 8 系统。
- 拥有
sudo
权限或 root 权限的用户账户。 - 稳定的网络连接,用于下载安装包。
安装Apache HTTP服务器
Apache 是全球使用最广泛的 Web 服务器软件之一,在 CentOS 中通过 httpd
软件包提供,安装过程非常直接。
更新系统软件包到最新版本,这是一个良好的维护习惯,对于 CentOS 7,使用 yum
;对于 CentOS 8 及更高版本,使用 dnf
。
sudo yum update -y
或
sudo dnf update -y
执行以下命令来安装 httpd
软件包:
sudo yum install httpd -y
系统会自动处理所有依赖关系并完成安装。-y
参数表示在安装过程中自动回答“是”,无需手动确认。
启动并设置开机自启
安装完成后,Apache 服务默认是未启动的,您需要手动启动它,并设置为开机自启动,以确保服务器重启后 Web 服务能自动运行。
使用 systemctl
命令来管理服务:
sudo systemctl start httpd
上述命令会立即启动 Apache 服务。
为了设置开机自启,请执行:
sudo systemctl enable httpd
这样,在下次系统启动时,httpd
服务就会自动加载。
您可以通过以下命令检查服务的运行状态,确保一切正常:
sudo systemctl status httpd
如果看到输出中包含 active (running)
的绿色文字,说明服务已成功启动。
配置防火墙
CentOS 默认使用 firewalld
作为防火墙管理工具,为了允许外部用户通过 HTTP(端口 80)和 HTTPS(端口 443)协议访问您的 Web 服务器,必须在防火墙中开放这些端口。
下表列出了需要开放的服务及其对应的端口:
服务 | 端口 | 协议 | 描述 |
---|---|---|---|
http | 80 | TCP | 标准HTTP流量 |
https | 443 | TCP | 加密HTTPS流量 |
执行以下命令来永久开放这些服务:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https
--permanent
参数表示规则永久生效,重启后依然存在。
重新加载防火墙配置使新规则立即生效:
sudo firewall-cmd --reload
验证安装
所有配置都已完成,您可以通过服务器的 IP 地址在浏览器中访问默认的 Apache 欢迎页面。
获取服务器的公网或内网 IP 地址:
ip addr
或者
hostname -I
找到您的 IP 地址后,在本地或其他设备的浏览器地址栏中输入 http://<您的服务器IP地址>
,如果一切顺利,您将看到一个标题为 “HTTP Server Test Page” 的页面,这标志着您的 HTTP 服务器已经成功安装并运行。
核心目录与文件说明
为了后续管理和网站内容部署,了解以下关键目录和文件至关重要:
- 网站根目录:
/var/www/html
您需要将网站文件(如index.html
)放置在此目录下。 - 主配置文件:
/etc/httpd/conf/httpd.conf
这是 Apache 的核心配置文件,包含了服务器的全局设置。 - 日志目录:
/var/log/httpd/
访问日志(access_log
)和错误日志(error_log
)都存放在这里,是排查问题的重要依据。
相关问答FAQs
解答: 这通常是由两个原因造成的,请确认您上传的文件名是否为 index.html
或 index.php
等 Apache 默认识别的首页文件名,最常见的原因是浏览器缓存,尝试强制刷新浏览器(Windows/Linux 上按 Ctrl + F5
,Mac 上按 Cmd + Shift + R
),如果问题依旧,可以尝试重启 Apache 服务以确保所有更改都已加载:sudo systemctl restart httpd
。
解答: 这个问题几乎总是由防火墙配置引起的,请务必确认您已经按照上文“配置防火墙”部分的步骤,使用 firewall-cmd
开放了 HTTP (80) 和 HTTPS (443) 服务,并执行了 reload
操作,也请检查其他电脑与服务器是否在同一个网络内,以及您输入的 IP 地址是否正确无误,如果防火墙配置无误,可以暂时关闭防火墙(sudo systemctl stop firewalld
)进行测试,如果能访问,则证明问题一定出在防火墙规则上。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复