虚拟主机不能在虚拟主机部分出现

我无法设置子域的虚拟主机configuration。 当我把东西放进去就好

<VirtualHost *:80> ServerName redmine.website.de ServerAdmin webmaster@localhost DocumentRoot /usr/share/redmine/public </VirtualHost> 

并重新configuration虚拟主机我得到错误信息

 <VirtualHost> cannot occur within <VirtualHost> section 

我查看了每个configuration文件apache2.conf,httpd.conf和/ sites-xxx中的所有文件。 语法总是正确的。

在这里输入图像说明

当我把一个</VirtualHost>放在顶端时:

在这里输入图像说明

任何想法如何我可以解决这个问题?

我的第一个猜测是,你正在编辑的文件被另一个文件包含,但是从virtualhost指令中, 或者你只需要看看你的conf.d中的所有其他文件(特别是那些在那之前加载的文件你正在努力),并确保他们都closures他们的虚拟主机指令。 如果在这个额外的configuration文件中尝试执行</virtualhost> ,即使apache在你开始添加这个新的虚拟主机之前工作,很有可能必要的</virtualhost>存在于稍后的文件或文件中的某个地方包括conf.d. 一个多余的结束标记与嵌套的虚拟主机一样无效,显然。

首先要做的就是在你的虚拟主机定义之前加一个</VirtualHost>指令

 </VirtualHost> <VirtualHost *:80> ServerName redmine.website.de ServerAdmin webmaster@localhost DocumentRoot /usr/share/redmine/public </VirtualHost> 

如果解决了这个问题,或者你得到了一个不同的错误信息,那么你的configuration中有一个<VirtualHost>而没有closures</Virtualhost>地方。

编辑

我可以让你原来的错误信息发生的唯一方法是有一个完整的

 <VirtualHost *:80> ... </VirtualHost> 

包含在<VirtualHost>定义中的包含文件中的定义。