Apache虚拟主机配置详细步骤是什么-CentOS

教程大全 2026-02-22 05:01:45 浏览

在当今的互联网环境中,一台服务器托管多个网站是一种常见且高效的做法,这不仅可以充分利用服务器资源,还能降低运营成本,在 centOS 系统上,Apache HTTP Server(简称 httpd)是实现这一功能的核心工具,通过配置虚拟主机,我们可以让单一的 Apache 服务实例根据用户请求的域名,响应不同的网站内容,本文将详细介绍在 CentOS 系统中如何一步步配置基于域名的 Apache 虚拟主机。

准备工作

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

第一步:创建网站目录结构

为了保持文件系统的整洁和管理的便捷性,我们为每个网站创建独立的目录,这些目录位于下,我们将以 example.com blog.example.com 为例进行配置。

# 创建主站目录sudo mkdir -p /var/www/example.com/public_html# 创建博客目录sudo mkdir -p /var/www/blog.example.com/public_html

这里的 public_html 是一个约定俗成的名称,用于存放网站的公开文件。

第二步:设置目录权限与所有权

默认情况下,创建的目录所有者是 root 用户,Apache 服务在 CentOS 中以用户和用户组运行,因此需要将网站目录的所有权赋予用户,并设置合适的权限,以便 Apache 能够读取和执行其中的文件。

# 修改目录所有权sudo chown -R apache:apache /var/www/example.com/public_htmlsudo chown -R apache:apache /var/www/blog.example.com/public_html# 确保目录权限正确sudo chmod -R 755 /var/www

chown -R apache:apache 命令递归地将目录及其内部所有文件的所有权更改为用户和组。则确保所有者有读写执行权限,而用户组和其他用户有读和执行权限,这对于 Web 服务来说是标准且安全的设置。

第三步:创建测试页面

为了验证配置是否成功,我们在每个网站的根目录下创建一个简单的 index.html 文件。

# 为 example.com 创建首页echo "欢迎来到 Example.com

Example.com 主站成功运行!

" | sudo tee /var/www/example.com/public_html/index.html# 为 blog.example.com 创建首页echo "欢迎来到 Blog

Blog.example.com 博客成功运行!

" | sudo tee /var/www/blog.example.com/public_html/index.html

命令在这里配合使用,可以方便地将内容写入需要 root 权限的文件。

第四步:创建虚拟主机配置文件

在 CentOS 中,Apache 的主配置文件位于 /etc/httpd/conf/httpd.conf ,最佳实践是,我们不直接修改此文件,而是在 /etc/httpd/conf.d/ 目录下为每个虚拟主机创建独立的配置文件,Apache 在启动时会自动加载此目录下的所有文件。

配置 example.com

创建并编辑配置文件 example.com.conf

sudo vi /etc/httpd/conf.d/example.com.conf

在文件中添加以下内容:

ServerName example.comServerAlias www.example.comDocumentRoot /var/www/example.com/public_htmlErrorLog /var/www/example.com/error.logCustomLog /var/www/example.com/requests.log combined

配置 blog.example.com

同样,创建并编辑配置文件 blog.example.com.conf

sudo vi /etc/httpd/conf.d/blog.example.com.conf
ServerName blog.example.comDocumentRoot /var/www/blog.example.com/public_htmlErrorLog /var/www/blog.example.com/error.logCustomLog /var/www/blog.example.com/requests.log combined

配置指令解析:

指令 描述
定义一个监听在所有 IP 地址(*)80 端口上的虚拟主机。
ServerName 指定该虚拟主机的主域名。
ServerAlias 指定该虚拟主机的别名域名,可以有多个,用空格隔开。
DocumentRoot 指定该域名网站文件的根目录。
指定该虚拟主机的错误日志文件路径。
指定该虚拟主机的访问日志文件路径,是一种常用的日志格式。

第五步:测试并重启 Apache

在应用新配置之前,最好先检查一下配置文件的语法是否有错误,这可以避免因配置失误导致服务无法启动。

sudo apachectl configtest

如果屏幕显示,说明配置没有问题,现在可以重启 Apache 服务使配置生效。

sudo systemctl restart httpd

为了确保 Apache 在系统重启后自动运行,可以设置其开机自启:

sudo systemctl enable httpd

第六步:验证结果

您可以在浏览器中访问 ,如果一切顺利,您应该会看到之前为每个站点创建的测试页面,如果您是在本地测试,请确保您的本地文件(在 Windows 上是 7 C:WindowsSystem32driversetchosts ,在 Linux/macOS 上是 /etc/hosts )中添加了如下记录:

your_server_ip example.comyour_server_ip www.example.comyour_server_ip blog.example.com

your_server_ip 替换为您服务器的实际 IP 地址。


相关问答FAQs

我已经按照步骤操作,但访问域名时仍然显示 Apache 的默认测试页面,这是为什么?

答: 这通常是由以下几个原因造成的:

如何为我的虚拟主机配置 HTTPS(SSL/TLS)?

答: 为网站启用 HTTPS 是现代 Web 的标准做法,您可以通过获取免费的 SSL 证书(Let’s Encrypt)来轻松实现,最常用的工具是。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐