我无法为子域设置vhost配置。当我把东西放进去的时候
<VirtualHost *:80>
ServerName redmine.website.de
ServerAdmin webmaster@localhost
DocumentRoot /usr/share/redmine/public
</VirtualHost>并重新配置vhost,我得到了错误消息。
<VirtualHost> cannot occur within <VirtualHost> section我查看了每个配置文件apache2.conf、httpd.conf和/sites中的所有文件。语法总是正确的。

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

知道我怎么解决这个问题吗?
发布于 2011-08-10 17:45:11
我的第一个猜测是,您正在编辑的文件是由另一个文件包含的,但是从虚拟主机指令中,或者您只需要查看conf.d .d中的所有其他文件(特别是那些在您正在处理的文件之前加载的文件),并确保所有这些文件都关闭了它们的虚拟主机指令。如果您尝试在这个额外的配置文件中执行</virtualhost>,即使在您开始添加这个新的虚拟主机之前,apache已经工作了,但是很有可能在以后的某个文件中或者包含conf.d. d的文件中存在必要的</virtualhost>。显然,外来的结束标记与嵌套的虚拟主机一样无效。
发布于 2011-08-10 16:53:10
首先要做的是在vhost定义之前放置一个</VirtualHost>指令。
</VirtualHost>
<VirtualHost *:80>
ServerName redmine.website.de
ServerAdmin webmaster@localhost
DocumentRoot /usr/share/redmine/public
</VirtualHost>如果这解决了问题,或者得到了不同的错误消息,那么您的配置中就会有一个没有关闭<VirtualHost>的</Virtualhost>。
编辑
使您的原始错误消息发生的唯一方法是完成
<VirtualHost *:80>
...
</VirtualHost> 包含在<VirtualHost>定义中的包含文件中的定义。
https://serverfault.com/questions/299718
复制相似问题