VirtualHost文件都指向Ubuntu 12.04中的第一个VirtualHost

时间:2012-11-13 01:23:00

标签: apache2 virtualhost ubuntu-12.04

所以我设置了2个虚拟主机文件,example1.com和example2.com,其中包含以下信息:

- 第一个文件

<VirtualHost 127.0.0.1:80>
    ServerName  example1.com
    ServerAlias www.example1.com
    ServerAdmin admin@example1.com
    DocumentRoot    /var/www/example1.com
</VirtualHost>

- 第二档

<VirtualHost 127.0.0.1:80>
    ServerName  example2.com
    ServerAlias www.example2.com
    ServerAdmin admin@example2.com
    DocumentRoot    /var/www/example2.com
</VirtualHost>

并设置我的主机文件以阅读

127.0.0.1 locahost
127.0.0.1 example1.com
127.0.0.1 example2.com

但如果我尝试访问localhost,example1.com或example2.com,我的浏览器只会将我发送到example1.com

默认的虚拟主机文件包含:

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

我假设/ var / www的AllowOverride优先于root正确吗?

所以后来我用a2dissite关闭了所有的虚拟主机,并在hosts文件中注释掉了这些行,但现在我的网站中有一半根本不工作。

我的一个wordpress网站似乎无法拉出它的css文件所以它全部顶起(24小时前很好),有几个网站似乎已经失去了与数据库的连接。

我不知道最近会发生什么事,但一切都被打倒了。

编辑 - 我的原始问题有两个虚拟主机文件指向example1.com,这是一个复制粘贴失败,实际文件指向合法的网站URL

1 个答案:

答案 0 :(得分:6)

在没有看到更多apache配置的情况下,我最好的猜测是您没有启用name-based virtual hosting。为此,请在Apache配置中包含以下内容:

NameVirtualHost *:80

基于IP的虚拟主机是Apache在没有该指令的情况下使用的默认机制。

顺便说一句,如果你这样做,<VirtualHost>块的参数必须与NameVirtualHost指令的参数匹配,所以请改用:

<VirtualHost *:80>

如果您打算在同一个盒子上处理很多不同的网站,您可能需要查看mod_vhost_alias的文档。