Apache2:获取错误的根目录

时间:2012-01-06 20:49:41

标签: linux apache ubuntu apache2

我有轻微的apache问题。它可能是非常小的东西,我只是在看它。这就是场景。我有一个Ubuntu 10.04服务器设置与2个网站。在此之前,我有一个站点,我通过IP地址访问它。我刚刚添加了第二个站点,这个站点有一个域名,我在sites-available目录中创建了一个新文件。带有指向已启用网站的目录的链接。

第一个站点(我通过IP访问的站点)配置看起来像这样:

#Default
<VirtualHost *:80>
    DocumentRoot /var/www
......etc

然后另一个配置是这样的:

#Secondary 
<VirtualHost TheDomainName.com:80>
    DocumentRoot /var/www/thedomainname
.......etc

如果你们需要我发布完整的配置文件,我会。为什么IP地址请求落到DomainName配置?是因为它们是相同的IP地址吗?我如何区分这两者?

如果我尝试在第一个“默认”配置而不是“*”上设置IP地址,则此站点仅起作用,我永远无法访问其他“辅助”站点。

感谢。

3 个答案:

答案 0 :(得分:1)

您是否在虚拟主机指令中使用ServerName和ServerAlias?

    <VirtualHost *:80>
    ServerName  www.domain.com
    ServerAlias domain.com domain.net www.domain.net

另一件事,您可能正在这样做,但在进行更改后重新启动apache

httpd restart

(或类似的东西.. /etc/init.d/apache2 restart或lighttpd如果你正在使用它)

答案 1 :(得分:1)

除非您使用name based virtual hosts,否则不同的网站无法共享IP和端口组合。手册中的例子如下:

NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *:80>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>

使用此功能时,未知域名会映射到配置中找到的第一个<VirtualHost>

答案 2 :(得分:0)

对于site1:

<VirtualHost *:80>
  ServerName oink.domain.com
  DocumentRoot /var/www
  ...

对于site2:

<VirtualHost *:80>
   ServerName blah.domain.com
   DocumentRoot /var/www/thedomainname
   ...