【问题标题】:VirtualHost files all pointing to first VirtualHost in Ubuntu 12.04 [closed]VirtualHost 文件都指向 Ubuntu 12.04 中的第一个 VirtualHost [关闭]
【发布时间】:2012-11-01 12:04:25
【问题描述】:

所以我设置了 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 优先于根目录,对吗?

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

我的一个 wordpress 网站似乎无法提取它的 css 文件,因此它全部被劫持(24 小时前还好),一些网站似乎失去了与数据库的连接。

我不知道发生了什么,但一切都被劫持了。

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

【问题讨论】:

  • 能否请您也发布您的 apache 配置文件的相关部分?我认为如果未声明侦听器或未添加 vh 配置,它们可能会成为问题。

标签: apache2 virtualhost ubuntu-12.04


【解决方案1】:

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

NameVirtualHost *:80

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

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

<VirtualHost *:80>

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

【讨论】:

    猜你喜欢
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 2015-03-30
    • 2012-07-09
    • 2014-06-19
    • 2012-05-10
    • 2017-02-17
    相关资源
    最近更新 更多