我想为我的网站做两个子域名。 为此,我在我的default文件下创build了三个VirtualHosts(可在Ubuntu上使用Apache):
<VirtualHost 127.0.0.1> ServerName nmagerko.me ... DocumentRoot /var/www ... </VirtualHost> <VirtualHost 127.0.0.1> ServerName sub1.nmagerko.me ... DocumentRoot /some/different/path ... </VirtualHost> <VirtualHost 127.0.0.1> ServerName sub2.nmagerko.me ... DocumentRoot /some/different/path2 ... </VirtualHost>
不过,我不确定在这之后要做什么。 我在我的/etc/hosts文件中拥有这些子域和我的主域名为127.0.0.1 ,并且在我的域名注册机构的域编辑器中为sub1和sub2设置了A Records。 但是,这些Alogging指向与我的主域名相同的IP,因为这些都被托pipe在一个系统上,这不是很有用。 所以,当我在浏览器中访问sub1.nmagerko.me时,我收到的网站就像我去nmagerko.me 。
有关如何进行的任何build议?
嗯,你写的configuration对我来说似乎是正确的,所以我会试着告诉你如何debugging问题:
1-确保DNS正确configuration执行dig nmagerko.me , dig sub1.nmagerko.me和dig sub2.nmagerko.me并寻找IP。 使用wget X.nmagerko.me进行testing,浏览器可以cachingDNS回复。
2-确保/some/different/path , /var/www和/some/different/pat2中的文件不同。
3-确保你重新启动Apache
sudo服务apache2重启
除此之外,你也可以看看日志。
希望这个帮助。
尝试在所有情况下将IP地址更改为端口80:
<VirtualHost *:80> ServerName nmagerko.me ... DocumentRoot /var/www ... </VirtualHost>
这可能有助于解决虚拟主机仅侦听内部(本地)通信的问题。 既然你正在设置你的域名logging,我假设你正在使用公开的服务器?
不要忘记在更改conf文件后重新加载apache:
$ sudo service apache2 reload
最后,让我们知道这只是你在本地进行testing。 如果是这样,您可能不需要更改您的域的Alogging(除非您正在托pipe您自己的私人DNS?)。
没有完整的httpd.conf(包括include),不可能从这里告诉,但添加
NameVirtualHost 127.0.0.1:80
在你的第一个<virtualHost domain:80>之上可能有帮助? 更改后重新启动Apache。