1

我在apache2服务器上设置第二个站点时遇到问题。我目前有一个站点启动并运行,它甚至还活着。但是,我正在开发另一个站点,并尝试在本地托管它。我创建了一个名为 newsite 的站点可用文件,其中包含以下内容

<VirtualHost *:80>
        ServerName newsite
        ServerAdmin webmaster@localhost

    DocumentRoot /var/www/newsite/
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/newsite/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

我用a2ensitenewsite启用它

我编辑主机文件 127.0.0.1 www.newsite.com

我已经运行了a2ensitenewsite

现在,当我查看新站点时它工作正常,但是当我尝试查看我的原始站点时,我只得到新站点

如果我禁用新站点(a2dissite newsite),则原始站点显示正常

任何帮助,将不胜感激

4

1 回答 1

0

我认为你没有正确设置你的ServerNameServerAlias指令。

对于您的两个虚拟主机,它们应该是这样的

 ServerName newsite.com 
 ServerAlias www.newsite.com 
 ServerName oldsite.com 
 ServerAlias www.oldsite.com

当前发生的情况是您已经设置了一个名为 newsite 的虚拟主机。如果你这样做http://newsite/:你会看到新网站,不管你在做什么www.newsite.com。同样,如果你这样做http://oldsite/(假设它的设置方式相同),你也会看到 oldsite.

当您这样做时www.newsite.com,您的 DNS 会将您定向到环回接口,但是,当 apache 收到请求时,它不知道如何处理它。所以它只选择了一个。这与您尝试仅通过 IP 访问没有什么不同。

因此,解决方案是您调用http://newsite/或修复您的ServerNameandServerAlias指令。

于 2012-09-26T10:43:20.143 回答