启动Apache时无法匹配<virtualhost>错误</virtualhost>

时间:2013-02-03 06:23:05

标签: apache virtualhost

我在尝试启动Apache时遇到错误:

</VirtualHost> without matching <VirtualHost> section

...参考下面列出的Apache配置文件的第4行:

<VirtualHost 74.117.238.120:80>
   ServerName www.mydomain.biz    
   DocumentRoot /var/www/mydomain
</VirtualHost>

<VirtualHost 74.117.238.120:80>
   ServerName codejerk.mydomain.biz   
   DocumentRoot /var/www/codejerk
</VirtualHost>

<VirtualHost 74.117.238.120:80>
   ServerName www.mydomain.tk   
   DocumentRoot /var/www/mydomain
</VirtualHost>

<VirtualHost 74.117.238.120:80>
   ServerName codejerk.mydomain.tk
   DocumentRoot /var/www/codejerk
</VirtualHost>

'Listen'和'NameVirtualHost'指令位于调用此指令的文件中:

Listen 80
NameVirtualHost 74.117.238.120:80

这让我疯了 - 显然每个VirtualHost区块都有一个开始和结束标记......

有人有什么想法吗?

提前致谢!

3 个答案:

答案 0 :(得分:3)

当您使用'\ r \ n'而不是unix格式'\ n'保存PC / Windows格式的vHost文件时,通常会发生这种情况。 以unix格式再次保存这些文件可以解决问题。

此外,如果存在,则需要删除字节顺序标记(BOM)。

答案 1 :(得分:0)

我通过将apache2 / sites-available / default和/apache2/ports.conf的内容合并到apache2 / apache2.conf并删除包含这些文件的行来解决这个问题。

显然有些事情与包含这些其他文件的顺序不相符。

答案 2 :(得分:0)

当您的配置文件具有BOM时,

apache2将显示此奇怪消息。

大多数工具将隐藏/忽略BOM,但是您可以使用命令file轻松检测到它:

% file /etc/apache2/conf-available/maxclients.conf 
/etc/apache2/conf-available/maxclients.conf: UTF-8 Unicode (with BOM) text