如何在 CentOS 6 上设置 Apache 虚拟主机
状态:已弃用
本文涵盖不再受支持的 CentOS 版本。如果您当前正在运行运行 CentOS 6 的服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。
原因:
请参阅:
以下 DigitalOcean 教程概述了在 CentOS 7 服务器上安装 Apache Web 服务器,还概述了如何设置虚拟主机文件:
- 如何在 CentOS 7 上安装 Apache Web 服务器
关于虚拟主机
虚拟主机用于从单个 IP 地址运行多个域。这对于需要在一台虚拟专用服务器上运行多个站点的人特别有用。这些站点向访问者显示不同的信息,具体取决于用户访问该站点的方式。可以添加到 VPS 的虚拟主机数量没有限制。
设置
本教程中的步骤要求用户具有 root 权限。您可以在第 3 步和第 4 步的初始服务器设置中了解如何进行设置。此外,如果我在某个步骤中引用用户,我将使用名称 www。您可以实施任何适合您的用户名。
此外,您需要在虚拟服务器上安装并运行 apache 如果不是这种情况,您可以使用以下命令下载它:
sudo yum install httpd
第一步——创建一个新目录
创建虚拟主机的第一步是创建一个目录,我们将在其中保存新网站的信息。
这个位置稍后将成为 Apache 虚拟配置文件中的文档根目录。通过将 -p 添加到代码行,该命令会自动为新目录生成所有父目录。
sudo mkdir -p /var/www/example.com/public_html
您将需要指定一个实际的 DNS 批准域或 IP 地址,以测试虚拟主机是否正常工作。在本教程中,我们将使用 example.com 作为正确域名的占位符。
但是,如果您想使用未经批准的域名来测试该过程,您将在第六步中找到有关如何使其在本地计算机上运行的信息。
第二步——授予权限
我们需要将目录的所有权授予用户,而不是仅仅将其保留在根系统上。
sudo chown -R apache:apache /var/www/example.com/public_html
此外,确保每个人都能阅读我们的新文件也很重要。
sudo chmod 755 /var/www
现在你已经完成了权限。
第三步——创建页面
我们需要在配置目录中创建一个名为 index.html 的新文件。
sudo vi /var/www/example.com/public_html/index.html
我们可以在文件中添加一些文本,以便在 IP 重定向到虚拟主机时我们可以查看一些内容。
<html>
<head>
<title>www.example.com</title>
</head>
<body>
<h1>Success: You Have Set Up a Virtual Host</h1>
</body>
</html>
保存并退出
第四步——开启虚拟主机
下一步是进入 apache 配置文件本身。
sudo vi /etc/httpd/conf/httpd.conf
有几行要查找。
确保您的文字与您在下面看到的相符。
#Listen 12.34.56.78:80
Listen 80
向下滚动到文档的最底部,找到名为“虚拟主机”的部分。
NameVirtualHost *:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot /var/www/example.com/public_html
ServerName www.example.com
ServerAlias example.com
ErrorLog /var/www/example.com/error.log
CustomLog /var/www/example.com/requests.log
</VirtualHost>
要关注的最重要的几行是 NameVirtualHost、Virtual Host、Document Root 和 Server Name。让我们一次拿这些。
- 取消注释(删除井号)NameVirtualHost 而不做任何更改。星号表示任何通过端口 80 的 IP 地址都将是虚拟主机。由于您的系统可能只有一个 IP 地址,因此这不是问题 - 但是,如果您愿意,可以将星号替换为您的 IP 地址。
- 您可以保留其余的数字标记,直到到达 <VirtualHost *:80> 行。通过 <VirtualHost> 取消注释所有内容。
- 保留 <VirtualHost *:80> 原样——其详细信息必须与 NameVirtual Host 部分中的相匹配。如果您在该部分用您的 IP 地址替换了星号,请务必在此处执行相同的操作。
- 文档根是关键!对于此部分,写入在第一步中创建的新目录的扩展名。如果文档根目录不正确或不存在,您将无法设置虚拟主机。
- 服务器名称是另一项重要信息,包含虚拟主机的域名(例如 www.example.com)。确保完整拼写域;我们将在下一行放入任何替代可能性。
- ServerAlias 是默认情况下不存在的配置文件中的新行。添加它将允许您列出域名的一些变体,例如前面没有 www。
本节中的其余行不是设置虚拟主机所必需的。但是,了解它们的作用仍然很有帮助。
- 服务器管理员要求提供网站管理员的电子邮件。
- 错误日志和自定义日志跟踪服务器的任何问题。错误日志涵盖维护服务器时出现的问题,自定义日志跟踪服务器请求。您可以为这些流程设置自定义位置。
- 确保取消注释
;然后保存并退出。
第五步——重启 Apache
我们对配置做了很多更改。但是,它们要等到 Apache 重新启动后才会生效。
首先停止所有apache进程:
sudo apachectl -k stop
然后再次启动apache。
sudo /etc/init.d/httpd start
您可能会看到以下错误:
Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
该消息只是一个警告,您将能够访问您的虚拟主机而不会出现任何其他问题。
可选的第六步——设置本地主机
如果您已将您的域名指向您的虚拟专用服务器的 IP 地址,您可以跳过这一步——您不需要设置本地主机。您的虚拟主机应该可以工作。但是,如果想在不连接到实际域名的情况下试用新的虚拟主机,您可以单独在计算机上设置本地主机。
要继续执行此步骤,您需要知道计算机的管理密码,否则您将需要使用实际域名来测试虚拟主机。
如果您使用的是 Mac 或 Linux,请访问计算机上的根用户 (su
) 并打开您的主机文件:
nano /etc/hosts
如果您使用的是 Windows 计算机,则可以在 Microsoft 站点上找到更改主机文件的说明
您可以将本地主机详细信息添加到此文件,如下例所示。只要该行在那里,将您的浏览器指向 example.com 就会为您提供相应 IP 地址的所有虚拟主机详细信息。
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
#Virtual Hosts
12.34.56.789 www.example.com
但是,完成后从本地主机文件夹中删除这些组成的地址可能是个好主意,以避免将来出现任何混淆。
第七步——结果:查看您的虚拟主机的运行情况
完成虚拟主机设置后,您可以在线查看它的外观。在浏览器中输入您的 IP 地址(即 http://12.34.56.789)