如何在CentOS6上设置Apache虚拟主机

来自菜鸟教程
跳转至:导航、​搜索

状态: 已弃用

本文介绍了不再受支持的 CentOS 版本。 如果您目前正在运行运行 CentOS 6 的服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。

原因: CentOS 6 已于 2020 年 11 月 30 日结束生命周期 (EOL) and no longer receives security patches or updates. For this reason, this guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 CentOS 版本。 如果可用,我们强烈建议使用为您正在使用的 CentOS 版本编写的指南。

以下 DigitalOcean 教程概述了在 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 重定向到虚拟主机时查看一些内容。

&lthtml>
  &lthead>
    &lttitle>www.example.com&lt/title>
  &lt/head>
  &ltbody>
    &lth1>Success: You Have Set Up a Virtual Host&lt/h1>
  &lt/body>
&lt/html>

保存并退出

第四步——开启虚拟主机

下一步是进入apache配置文件本身。

sudo vi /etc/httpd/conf/httpd.conf

有几行要寻找。

确保您的文字与您在下面看到的内容相匹配。

#Listen 12.34.56.78:80
Listen 80

向下滚动到文档的最底部,找到名为 Virtual Hosts 的部分。

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.
# 
&ltVirtualHost *: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
&lt/VirtualHost>

要关注的最重要的行是 NameVirtualHost、Virtual Host、Document Root 和 Server Name 行。 让我们一次拿这些。

  • 取消注释(删除数字符号) NameVirtualHost 而不做任何更改。 星号表示任何通过端口 80 的 IP 地址都是虚拟主机。 由于您的系统可能只有一个 IP 地址,因此这不是问题 — 但是,如果您愿意,可以将星号替换为您的 IP 地址。
  • 您可以保留其余的数字标记,直到到达 行。 通过 从那里取消注释所有内容。
  • 保持 不变 - 它的详细信息必须与 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 地址,则可以跳过此步骤——您无需设置本地主机。 您的虚拟主机应该可以工作。 但是,如果想在无需连接到实际域名的情况下试用新的虚拟主机,您可以单独在计算机上设置本地主机。 对于此步骤,请确保您使用的是计算机本身,而不是您的 droplet。

要继续此步骤,您需要知道计算机的管理密码,否则您将需要使用实际域名来测试虚拟主机。

如果您使用的是 Mac 或 Linux,请访问计算机上的 root 用户 (su) 并打开您的 hosts 文件:

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)

它应该看起来有点类似于我的方便截图

做得好!

添加更多虚拟主机

要创建其他虚拟主机,您只需重复上述过程,每次都要小心设置一个具有适当新域名的新文档根目录。 然后只需将新的 Virtual Host 信息复制并粘贴到 Apache Config 文件中即可,如下图所示

&ltVirtualHost *:80>
     ServerAdmin webmaster@example.com
     DocumentRoot /var/www/example.com/public_html
     ServerName www.example.com
     ServerAlias example.com
     ErrorLog /etc/var/www/example.com/error.log
     CustomLog /var/www/example.com/requests.log
&lt/VirtualHost>
&ltVirtualHost *:80>
     ServerAdmin webmaster@example.org
     DocumentRoot /var/www/example.org/public_html
     ServerName www.example.org
     ServerAlias example.org
     ErrorLog /var/www/example.org/error.log
     CustomLog /var/www/example.orgrequests.log
&lt/VirtualHost>

看更多

设置好虚拟主机后,您可以继续 为您的站点创建 SSL 证书安装 FTP 服务器

埃特尔·斯维尔德洛夫