所以我设置了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
答案 0 :(得分:6)
在没有看到更多apache配置的情况下,我最好的猜测是您没有启用name-based virtual hosting。为此,请在Apache配置中包含以下内容:
NameVirtualHost *:80
基于IP的虚拟主机是Apache在没有该指令的情况下使用的默认机制。
顺便说一句,如果你这样做,<VirtualHost>
块的参数必须与NameVirtualHost
指令的参数匹配,所以请改用:
<VirtualHost *:80>
如果您打算在同一个盒子上处理很多不同的网站,您可能需要查看mod_vhost_alias的文档。