我在设置基于Linux的Apache 2.2服务器时遇到了一个相当简单的问题。我想在同一台服务器上设置两个完全不同的域。 但它只提供第一个标签的内容!我搜索了StackOverflow并在Apache.org上阅读了这些项目,但没有运气。
我按照Apache.org上的说明进行操作,并将这两部分放在我的http.conf文件的底部。
<VirtualHost *:80>
DocumentRoot /var/www/mydomain1
ServerName sub1.mydomain1.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/mydomain2
ServerName sub2.mydomain2.com
</VirtualHost>
现在,当我使用浏览器转到:http://sub1.mydomain1.com时,它就可以了。但是,如果我转到http://sub2.mydomain2.com,我仍然只能获得位于/ var / www / webfiles / mydomain1中的内容。
我做了许多显而易见的事情,例如: - 服务httpd重启 - 我改变了httpd.conf中两个条目的顺序,再一次,它只服务于列表中的第一个条目。 - 我使用Googled的一个支持文档说,确保在您的系统上有一个有效域的以下入口点。所以我输入了这个(但它没有改变任何东西): ServerName sub2.mydomain2.com:80
一定是傻事,但我无法理解!
答案 0 :(得分:12)
好的,我明白了。这很傻。我只需要取消注释这一行,所以我实际上会使用所有虚拟主机:
NameVirtualHost *:80
答案 1 :(得分:5)
您需要在两个单独的虚拟主机中设置这两个域。通常,当我这样做时,我喜欢拆分一个包含虚拟主机文件的include目录,每个文件包含一个虚拟主机。
<VirtualHost *:80>
ServerName site1.com
DocumentRoot "/var/www/site1"
</VirtualHost>
<VirtualHost *:80>
ServerName site2.com
DocumentRoot "/var/www/site2"
</VirtualHost>