VirtualHost 文件都指向 Ubuntu 12.04 中的第一个 VirtualHost [关闭]
Posted
技术标签:
【中文标题】VirtualHost 文件都指向 Ubuntu 12.04 中的第一个 VirtualHost [关闭]【英文标题】:VirtualHost files all pointing to first VirtualHost in Ubuntu 12.04 [closed] 【发布时间】: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 配置,它们可能会成为问题。 【参考方案1】:在没有看到更多 apache 配置的情况下,我最好的猜测是你没有启用 name-based virtual hosting。为此,请在 Apache 配置中包含以下内容:
NameVirtualHost *:80
基于 IP 的虚拟主机是 Apache 在没有该指令的情况下使用的默认机制。
顺便说一句,如果你这样做,<VirtualHost>
块的参数必须与 NameVirtualHost
指令的参数匹配,所以请改用它:
<VirtualHost *:80>
如果您要在同一个盒子上处理许多不同的网站,您可能需要查看mod_vhost_alias 的文档。
【讨论】:
以上是关于VirtualHost 文件都指向 Ubuntu 12.04 中的第一个 VirtualHost [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 Ubuntu 12.04 上的 Apache2 中配置 VirtualHost 的问题
VirtualHost 始终在 Ubuntu 14.04 上使用 Apache 返回默认主机