第一步——创建一个新目录
创建虚拟主机的第一步是创建一个目录,我们将在其中保存新网站的信息。
此位置稍后将成为您在 Apache 虚拟配置文件中的文档根目录。通过在代码行中添加 -p,该命令会自动为新目录生成所有父目录。
sudo mkdir -p /var/www/example.com/public_html
您需要指定一个实际的 DNS 批准域或 IP 地址,以测试虚拟主机是否正常工作。在本教程中,我们将使用 example.com 作为正确域名的占位符。
但是,如果您想使用未经批准的域名来测试该过程,您将在第七步中找到有关如何使其在本地计算机上运行的信息。
第二步——授予权限
我们需要将目录的所有权授予用户,而不是仅仅将其保留在根系统上。
sudo chown -R www:www /var/www/example.com/public_html
此外,确保每个人都能阅读我们的新文件非常重要。
sudo chmod 755 /var/www
现在你已经完成了权限。
第三步——创建页面
在我们的配置目录中,我们需要创建一个名为 index.html 的新文件
sudo nano /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 cp /etc/apache2/sites-available/default /etc/apache2/sites-available/example.com
第五步——开启虚拟主机
打开新的配置文件:
sudo nano /etc/apache2/sites-available/example.com
我们将在这个文件中设置一个虚拟主机。
第一步是在 ServerAdmin 行下为 ServerName 插入一行。
ServerName example.com
ServerName 指定虚拟主机使用的域名。
如果您想让您的网站可以从多个名称访问(例如,在 URL 中使用 www),您可以通过添加 ServerAlias Line 在您的虚拟主机文件中包含备用名称。您的虚拟主机文件的开头将如下所示:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
[...]
下一步是填写正确的文档根目录。对于本节,写入在第一步中创建的新目录的扩展名。如果文档根目录不正确或不存在,您将无法设置虚拟主机。
该部分应如下所示:
DocumentRoot /var/www/example.com/public_html
您无需对此文件进行任何其他更改。保存并退出。
最后一步是激活主机。幸运的是,Ubuntu 提供了一种简单的方法来做到这一点:
sudo a2ensite example.com
第六步——重启 Apache
我们对配置进行了很多更改,并设置了虚拟主机。然而,在 Apache 重新启动之前,我们所做的任何更改都不会生效。使用此命令重启 apache:
sudo /etc/init.d/apache2 reload
您可能会看到类似以下内容的错误
无法可靠地确定服务器的完全限定域名,使用 127.0.0.1 作为 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 example.com
但是,最好在完成后从本地主机文件夹中删除这些编造的地址,以避免将来出现任何混淆。
第八步——结果:查看您的虚拟主机的运行情况
完成设置虚拟主机后,您可以在线查看它的外观。在浏览器中输入您的 IP 地址(即http://12.34.56.789)