我按照说明安装了 mindtouch这里并且它似乎破坏了我的虚拟主机配置。我有多个域在同一个 apache 实例上运行,这本来运行良好,但现在我的所有域名都解析到安装了 mindtouch 的虚拟主机。因此 mindtouch 使我的所有域名都指向新的 mindtouch 实例。哎呀!
我使用 debian 默认虚拟主机机制(sites-enabled 等)。有人知道 mindtouch 使用什么 apache 指令来破坏我的 vh 设置吗?我仔细检查了所有 conf 文件,apache2.conf 或 httpd.conf 中没有明显会导致此行为的内容。它是否在某处创建了我应该销毁的符号链接?
我应该补充一点,我已经卸载了 mindtouch 包,但是 apache 坚持将所有域重定向到 sites-enabled 文件夹中提到的第一个域。
thini:~# apache2ctl -S
[Wed Jan 05 13:39:11 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:* www.openancestry.org (/etc/apache2/sites-enabled/openancestry.org:1)
*:* www.pragmantra.com (/etc/apache2/sites-enabled/pragmantra.com:1)
*:* services.pragmantra.com (/etc/apache2/sites-enabled/services.pragmantra.com:1)
*:* www.subversionreports.com (/etc/apache2/sites-enabled/subversionreports.com:1)
*:* www.thijssen.ch (/etc/apache2/sites-enabled/thijssen.ch:1)
Syntax OK
编辑:按照 Niall 和 DerfK 的建议进行修改后,我现在得到了以下信息:
thini:/etc/apache2/sites-enabled# apache2ctl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server www.openancestry.org (/etc/apache2/sites-enabled/openancestry.org:1)
port 80 namevhost www.openancestry.org (/etc/apache2/sites-enabled/openancestry.org:1)
port 80 namevhost www.pragmantra.com (/etc/apache2/sites-enabled/pragmantra.com:1)
port 80 namevhost services.pragmantra.com (/etc/apache2/sites-enabled/services.pragmantra.com:1)
port 80 namevhost www.subversionreports.com (/etc/apache2/sites-enabled/subversionreports.com:1)
port 80 namevhost www.thijssen.ch (/etc/apache2/sites-enabled/thijssen.ch:1)
Syntax OK
sites-enabled 文件夹中最先出现的文件最终将被视为“默认服务器”。就好像命名虚拟主机被禁用一样。
已解决:
<VirtualHost _default_:80>DocumentRoot /var/www</VirtualHost>
答案1
第一个警告可能就是答案。您将 NameVirtualHost 定义为 *:80,但是从外观上看,您拥有<VirtualHost *:*>
或类似的东西,而不是<VirtualHost *:80>
定义每个虚拟主机的配置位。
答案2
@Grenade 很抱歉听到您在使用 MindTouch 时遇到问题。如果您按照 wiki 页面上的说明操作,那么您可以随时尝试“a2dissite dekiwiki”和“a2ensite default”来查看是否能解决问题。MindTouch 确实使用启用站点的符号链接来管理主机,但可能只是您在第一个 apache vhost 上有一个通配符。如果以上内容有帮助,请告诉我。