我有一台运行Apache 2的虚拟机,并且我正在尝试设置多个基于名称的虚拟主机。基本上,只要我在启用站点的文件夹中上载并启用新的虚拟主机文件,整个Web服务器就会停止响应。它无法启动,我无法从Web浏览器连接到它,并且在我删除文件之前它不会再次启动。以下是我要遵循的步骤:
创建一个新的VirtaualHost文件并将其上传到etc / apache2 / sites-enabled,VirtualHost文件看起来像下面的代码,名为www.glutenfreaks.com:
ServerAdmin evomoore@gmail.com ServerName www.glutenfreaks.com ServerAlias glutenfreaks.com
# Indexes + Directory Root.
DirectoryIndex index.php
DocumentRoot /var/www/glutenfreaks/
# CGI Directory
ScriptAlias /cgi-bin/ /var/www/glutenfreaks/cgi-bin
<Location /cgi-bin>
Options +ExecCGI
</Location>
# Logfiles
ErrorLog /var/www/glutenfreaks/logs/error.log
CustomLog /var/www/glutenfreaks/logs/access.log combined
从命令行我正在执行“a2ensite www.glutenfreaks.com”
然后我重新加载服务器:“/ etc / init.d / apache2 reload”
然后一切都在蓬勃发展,没有任何作品了。
帮助??
谢谢,
埃文
答案 0 :(得分:2)
第一步 - 创建一个新目录 创建虚拟主机的第一步是创建一个目录,我们将保留新网站的信息。
此位置将在稍后的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
[...]
下一步是填写正确的文档根目录。对于本节,请写入在步骤1中创建的新目录的扩展名。如果文档根目录不正确或不存在,则无法设置虚拟主机。
该部分应如下所示:
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 for ServerName
可靠地确定服务器的完全限定域名该消息只是一个警告,您将能够访问您的虚拟主机而不会出现任何其他问题。
可选第七步 - 设置本地主机 如果您已将域名指向虚拟专用服务器的IP地址,则可以跳过此步骤 - 您无需设置本地主机。您的虚拟主机应该工作。但是,如果要在不必连接到实际域名的情况下尝试新的虚拟主机,则可以单独在计算机上设置本地主机。
对于此步骤,请确保您自己在计算机上,而不是您的Droplet。
要继续此步骤,您需要知道计算机的管理密码,否则您将需要使用实际的域名来测试虚拟主机。
如果您使用的是Mac或Linux,请访问计算机上的root用户(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 example.com
但是,当您完成后,最好从本地hosts文件夹中删除这些组成的地址以避免将来出现混淆。
第八步 - 结果:查看您的虚拟主机的运行情况
完成虚拟主机的设置后,您可以看到它的在线状态。在浏览器中输入您的IP地址(即http://12.34.56.789
)