当前位置:首页 > Centos > 正文

CentOS上配置Apache虚拟主机(手把手教你搭建多个网站)

在使用 CentOS 系统搭建 Web 服务时,我们常常需要在同一台服务器上运行多个网站。这时,Apache 虚拟主机(Virtual Host)就派上了大用场。本教程将从零开始,一步步教你如何在 CentOS 上配置 Apache 虚拟主机,即使是小白也能轻松上手!

什么是 Apache 虚拟主机?

Apache 虚拟主机允许你在一台服务器上托管多个域名或子域名,每个站点可以拥有独立的文档根目录、日志文件和配置选项。这对于节省服务器资源、管理多个项目非常有用。

CentOS上配置Apache虚拟主机(手把手教你搭建多个网站) CentOS  Apache虚拟主机 虚拟主机配置 Web服务器 第1张

准备工作

在开始之前,请确保你已完成以下步骤:

  • 拥有一台安装了 CentOS 7/8/9 的服务器(本文以 CentOS 7 为例)
  • 已安装 Apache(httpd)服务
  • 具有 root 或 sudo 权限

如果尚未安装 Apache,可执行以下命令:

sudo yum install httpd -ysudo systemctl start httpdsudo systemctl enable httpd

步骤一:创建网站目录

假设我们要配置两个网站:site1.example.comsite2.example.com。首先为它们创建各自的文档根目录:

sudo mkdir -p /var/www/site1.example.com/public_htmlsudo mkdir -p /var/www/site2.example.com/public_html

然后设置合适的权限:

sudo chown -R apache:apache /var/www/site1.example.comsudo chown -R apache:apache /var/www/site2.example.comsudo chmod -R 755 /var/www

步骤二:创建测试页面

为每个站点创建一个简单的 index.html 页面用于测试:

echo "<h2>欢迎访问 Site 1</h2>" | sudo tee /var/www/site1.example.com/public_html/index.htmlecho "<h2>欢迎访问 Site 2</h2>" | sudo tee /var/www/site2.example.com/public_html/index.html

步骤三:配置虚拟主机

进入 Apache 配置目录,创建虚拟主机配置文件:

sudo mkdir -p /etc/httpd/conf.d/vhosts

然后创建第一个站点的配置文件:

sudo tee /etc/httpd/conf.d/vhosts/site1.conf <<EOF<VirtualHost *:80>    ServerName site1.example.com    DocumentRoot /var/www/site1.example.com/public_html    ErrorLog /var/log/httpd/site1_error.log    CustomLog /var/log/httpd/site1_access.log combined</VirtualHost>EOF

再创建第二个站点的配置文件:

sudo tee /etc/httpd/conf.d/vhosts/site2.conf <<EOF<VirtualHost *:80>    ServerName site2.example.com    DocumentRoot /var/www/site2.example.com/public_html    ErrorLog /var/log/httpd/site2_error.log    CustomLog /var/log/httpd/site2_access.log combined</VirtualHost>EOF

步骤四:启用 NameVirtualHost(仅限 CentOS 6)

如果你使用的是 CentOS 7 或更高版本,此步骤可跳过。Apache 2.4+ 默认启用基于名称的虚拟主机。

步骤五:测试并重启 Apache

先检查配置是否正确:

sudo httpd -t

如果显示 “Syntax OK”,说明配置无误。接着重启 Apache 使配置生效:

sudo systemctl restart httpd

步骤六:本地测试(无需真实域名)

如果你没有真实域名,可以在本地电脑的 hosts 文件中添加解析记录(仅用于测试):

# Windows: C:\Windows\System32\drivers\etc\hosts# Linux/macOS: /etc/hosts你的服务器IP地址 site1.example.com你的服务器IP地址 site2.example.com

保存后,在浏览器中访问 http://site1.example.comhttp://site2.example.com,应能看到各自不同的页面。

常见问题排查

  • 403 Forbidden:检查目录权限和 SELinux 设置(可临时禁用 SELinux 测试)
  • 只显示默认页面:确认虚拟主机配置文件被正确加载(检查 /etc/httpd/conf/httpd.conf 是否包含 IncludeOptional conf.d/*.conf
  • 无法访问:确保防火墙开放了 80 端口:sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --reload

总结

通过以上步骤,你已经成功在 CentOS 系统上配置了 Apache 虚拟主机,可以轻松托管多个网站。掌握这项技能对运维人员和开发者都非常重要。希望本教程能帮助你快速上手 Web服务器 的多站点管理!

关键词提示:本文涉及的核心 SEO 关键词包括:CentOS、Apache虚拟主机、虚拟主机配置、Web服务器。