我有一个Windows域控制器,我们将其用于DNS内部networking。 我有一个IP地址为172.16.34.149的Ubuntu盒子。 在Windows DNS中,我为Endymion名称创build了正向和反向查找条目。
自然,当我FTP / SSH / HTTP /等主机名Endymion它正确地解决我的Ubuntu的盒子。
我想在现有网站的这个框上做一些networking开发。 将网站放在/ var / www /子文件夹中时出现问题。 我们只是说它在文件夹/ var / www / projectx /中。 这个问题涉及不正确的解决非相对的url。
所以我想我可以为主机名projectx创build一个新的DNS条目。 果然,当我FTP / SSH / HTTP / etc的主机名projectx它需要我的主机名Endymion相同的Ubuntu的盒子…这是我所期望的。 我现在有两个主机名为同一个盒子。
然后我在httpd.conf中创build一个如下的虚拟主机条目:
<VirtualHost *:80> DocumentRoot /var/www/projectx ServerName projectx ServerAlias projectx </VirtualHost>
果然,当我去浏览器,并inputhttp:// projectx /它带我到正确的子文件夹。 一切正常!
没那么快
然后我去http:// endymion /而不是带我到/ var / www /它需要我/ var / www / projectx /
显然我错过了一些东西。 请帮助! ;)
看看基于名称的虚拟主机上的Apache文档,你会发现这些信息:
主人走开
如果要将虚拟主机添加到现有Web服务器,则还必须为现有主机创build一个块。 此虚拟主机中包含的ServerName和DocumentRoot应与全局ServerName和DocumentRoot相同。 首先在configuration文件中列出这个虚拟主机,以便它作为默认主机。
换句话说,只要创build一个虚拟主机,主服务器configuration中的DocumentRoot变得不相关。 Apache将select第一个定义的虚拟主机,用于没有明确地匹配ServerName或ServerAlias指令的ServerName ,因此您将需要在configuration文件中的任何其他VirtualHost块之前为主要主机创build一个条目。
我想你还需要为endymion创build一个虚拟主机条目,如下所示:
<VirtualHost *:80> DocumentRoot /var/www/example ServerName endmymion ServerAlias endmymion </VirtualHost>
当然使用默认的 vhost也可以像上面所说的那样工作。