所以我正在尝试建立一个机架式云服务器来托管具有单个IP的多个站点(而不是服务器)。我在Ubuntu 12.04 LTS服务器上安装了Virtualmin / Webmin。我创建了目录/ var / www / sites / testsite。然后我使用以下设置在Webmin-> Servers-> Apache Webserver下创建了一个虚拟主机:
Address: Any
Port: 80
Document Root: /var/www/sites/testsite
Server Name: testsite.com
然后,为了测试它,我在本地机器上编辑了hosts文件并添加了
[my.server.ip.address] testsite.com
然后在我的浏览器中访问testsite.com并且问题是它正在加载默认站点(在/ var / www)而不是我刚创建的虚拟站点(我通过在/ var /中添加不同的index.html文件来验证这一点www和/ var / www / sites / testsite)。
以下是/etc/apache2/sites-available/webmin.1372454178.conf中创建的webmin指令
DocumentRoot /var/www/sites/testsite
<Directory "/var/www/sites/testsite">
allow from all
Options +Indexes
</Directory>
ServerName testsite.com
ServerAlias www.testsite.com
答案 0 :(得分:3)
我通过添加指令来解决这个问题 ServerAlias domain.tld * .domain.tld
你可以在Apache下找到这个设置 - &gt;您的虚拟域设置 - &gt;网络和地址 - &gt;备用虚拟服务器名称FIELD。
使用domain.tld * .domain.tld
答案 1 :(得分:1)
在我们的情况下,我们忘记最初添加服务器名称,然后忘记webmin虚拟主机编辑/删除,它没有更新指令,因此其中缺少服务器名称。添加服务器名称和重新启动Apache后,它已经开始正常工作。
服务器 - &gt; Apache Webserver:选择您的虚拟服务器 - &gt;编辑指令
Server Name: testsite.com
其他 - &gt;命令外壳
service apache2 restart
在浏览器中打开您的网址。
答案 2 :(得分:0)
我发现将'Any'与特定端口混合由于某种原因不能很好地发挥作用。
尝试将vhost设置更新为:
Address: Any
Port: Any
Document Root: /var/www/sites/testsite
Server Name: testsite.com
执行此操作时,请确保清空在选择特定端口时填写的所有框。
此外,正如旁注,习惯于将您的网站设置为不允许目录索引,除非当然特别要求。
所以在实际指令集中:
Options -Indexes
这将阻止人们在您的网站中挖掘。如果您当然需要允许某人查看目录,您可以使用.htaccess
逐个文件夹添加权限。