Назад | Перейти на главную страницу

Virtualhost не может находиться в разделе VirtualHost

Я не могу установить конфигурацию 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-xxx. Синтаксис всегда правильный.

Когда я поставил </VirtualHost> на вершине:

Есть идеи, как я могу это решить?

Первое, что нужно сделать, это поставить </VirtualHost> директива непосредственно перед определением вашего vhost, например

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

Если это решит проблему или вы получите другое сообщение об ошибке, значит, у вас <VirtualHost> без закрытия </Virtualhost> где-то в вашем конфиге.

РЕДАКТИРОВАТЬ

Единственный способ заставить появиться ваше исходное сообщение об ошибке - это иметь полное

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

определение внутри включаемого файла, который включается из <VirtualHost> определение.

Мое первое предположение заключается в том, что файл, который вы редактируете, включается другим файлом, но из директивы virtualhost или вам просто нужно просмотреть все другие файлы в вашем conf.d (особенно те, которые загружаются до того, над которым вы работаете) и убедиться, что все они закрывают свои директивы virtualhost. Если вы попытаетесь сделать </virtualhost> в этом дополнительном файле конфигурации, несмотря на то, что apache работал до того, как вы начали добавлять этот новый виртуальный хост, есть большая вероятность, что необходимый </virtualhost> существует где-то в более позднем файле или внутри файла, который включает conf.d. Очевидно, посторонний закрывающий тег так же недействителен, как и вложенный виртуальный хост.