我在尝试启动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区块都有一个开始和结束标记......
有人有什么想法吗?
提前致谢!
答案 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)
apache2将显示此奇怪消息。
大多数工具将隐藏/忽略BOM,但是您可以使用命令file
轻松检测到它:
% file /etc/apache2/conf-available/maxclients.conf
/etc/apache2/conf-available/maxclients.conf: UTF-8 Unicode (with BOM) text