本指南将详细讲解如何使用最经典的 Apache HTTP Server 来完成这个任务。

核心要点:
- 软件选择:CentOS 6.5 的软件仓库中,默认的 HTTP 服务器是 Apache 2.2,我们将使用它。
- 安全警告:强烈建议不要将此配置暴露在公网上,CentOS 6.5 存在大量已知的安全漏洞,没有安全更新,极易被攻击,请在隔离的网络环境中进行操作。
- 软件仓库:我们将使用默认的
yum仓库,如果需要更新的软件,可以配置第三方仓库(如EPEL),但这会增加复杂性。
第一步:准备工作
在开始之前,请确保你的系统已经更新到最新的状态(尽管可能没有安全补丁)。
# 以 root 用户或使用 sudo 执行 yum update -y
第二步:安装 Apache HTTP Server
使用 yum 包管理器来安装 Apache,它的主程序包名通常是 httpd。
# 安装 httpd 及其依赖 yum install -y httpd
安装过程会自动下载并配置好 Apache 的核心文件。
第三步:启动并设置开机自启
安装完成后,需要手动启动 Apache 服务,并设置它在系统重启后自动运行。

# 启动 Apache 服务 service httpd start # 设置 Apache 开机自启 chkconfig httpd on
如何检查服务状态?
你可以使用以下命令来确认 Apache 是否正在运行:
# 查看服务状态 service httpd status # 或者检查监听端口 netstat -tuln | grep :80 # 或者使用更现代的 ss 命令 ss -tuln | grep :80
如果看到 LISTEN 在 80 端口,说明服务器已经成功启动。
第四步:配置防火墙
CentOS 6.5 默认使用 iptables 作为防火墙,为了能让外部网络访问你的网页,需要开放 80 (HTTP) 和 443 (HTTPS) 端口。

# 开放 80 端口 iptables -I INPUT -p tcp --dport 80 -j ACCEPT # 如果你以后会用到 HTTPS,也开放 443 端口 # iptables -I INPUT -p tcp --dport 443 -j ACCEPT # 保存防火墙规则,使其重启后依然有效 service iptables save
如何验证?
你应该可以在同一局域网内的另一台电脑上,使用浏览器访问你的 CentOS 6.5 服务器的 IP 地址,http://192.168.1.100,你应该能看到 Apache 的默认欢迎页面。
第五步:理解 Apache 的目录结构
了解几个关键的目录和文件,对于后续配置至关重要:
- 主配置文件:
/etc/httpd/conf/httpd.conf这是 Apache 最核心的配置文件,几乎所有全局设置都在这里。
- 网站根目录:
/var/www/html/- 这是存放你网站默认首页文件的地方,当你访问根域名时,Apache 会自动查找这个目录下的
index.html或index.php等文件。
- 这是存放你网站默认首页文件的地方,当你访问根域名时,Apache 会自动查找这个目录下的
- 网站配置文件目录:
/etc/httpd/conf.d/- 这个目录下的所有
.conf文件都会在主配置文件加载时被自动加载,我们为每个网站(虚拟主机)创建一个独立的配置文件放在这里,以保持主配置文件的整洁。
- 这个目录下的所有
- 日志文件目录:
/var/log/httpd/access_log: 记录所有用户的访问请求。error_log: 记录服务器运行时产生的错误信息。
第六步:部署你的第一个网页
让我们把默认的欢迎页面换成我们自己的内容。
-
备份默认首页(可选)
mv /var/www/html/index.html /var/www/html/index.html.bak
-
创建新的首页 使用你喜欢的文本编辑器(如
vi或nano)创建一个新的index.html文件。vi /var/www/html/index.html
在文件中输入一些简单的 HTML 代码:
<html> <head> <title>My First CentOS 6.5 Web Server</title> </head> <body> <h1>Hello, World!</h1> <p>This is my web page running on CentOS 6.5 with Apache.</p> </body> </html>保存并退出 (在
vi中是按ESC,然后输入wq并回车)。 -
重新访问 刷新浏览器,你应该就能看到你自定义的页面了。
第七步:高级配置 - 创建虚拟主机
虚拟主机允许你在同一台服务器上托管多个独立的网站,每个网站都有自己的域名和内容。
假设我们要托管两个网站:www.siteA.com 和 www.siteB.com。
-
为每个网站创建目录
# 创建网站 A 的目录 mkdir -p /var/www/siteA.com echo "This is Site A" > /var/www/siteA.com/index.html # 创建网站 B 的目录 mkdir -p /var/www/siteB.com echo "This is Site B" > /var/www/siteB.com/index.html
-
在
/etc/hosts文件中添加本地域名解析(仅用于本地测试) 在你的 CentOS 6.5 服务器上编辑/etc/hosts文件,添加以下两行:vi /etc/hosts
0.0.1 www.siteA.com 127.0.0.1 www.siteB.com注意:在真实环境中,这需要通过 DNS 服务器来完成。
-
创建虚拟主机配置文件 在
/etc/httpd/conf.d/目录下创建一个新的配置文件,my_vhosts.conf。vi /etc/httpd/conf.d/my_vhosts.conf
输入以下配置内容:
# 虚拟主机配置开始 NameVirtualHost *:80 # 配置 siteA.com <VirtualHost *:80> ServerAdmin admin@siteA.com DocumentRoot /var/www/siteA.com ServerName www.siteA.com ErrorLog logs/siteA.com_error.log CustomLog logs/siteA.com_access.log common </VirtualHost> # 配置 siteB.com <VirtualHost *:80> ServerAdmin admin@siteB.com DocumentRoot /var/www/siteB.com ServerName www.siteB.com ErrorLog logs/siteB.com_error.log CustomLog logs/siteB.com_access.log common </VirtualHost> # 虚拟主机配置结束NameVirtualHost *:80:声明基于域名的虚拟主机监听在 80 端口。<VirtualHost>:定义一个虚拟主机块。DocumentRoot:指定该网站的根目录。ServerName:指定该网站绑定的域名。
-
重启 Apache 服务 让新的配置生效。
service httpd restart
-
测试 在浏览器中分别访问
http://www.siteA.com和http://www.siteB.com,你应该能看到各自不同的内容了。
第八步:常见问题排查
如果网站无法访问,请按以下顺序检查:
- 检查服务状态:
service httpd status,确保服务正在运行。 - 检查端口是否监听:
netstat -tuln | grep :80,确保 80 端口处于LISTEN状态。 - 检查防火墙: 确认
iptables的规则没有阻止 80 端口,可以使用service iptables status查看。 - 检查 SELinux: 这是 CentOS 6.5 上最常见的问题之一! SELinux 默认会限制 Apache 访问文件系统。
- 临时关闭(不推荐,但可用于快速测试):
setenforce 0
- 永久关闭(同样不推荐):
编辑
/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled,然后重启系统。 - 正确做法(推荐):
- 临时关闭(不推荐,但可用于快速测试):
