Я не могу установить конфигурацию 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. Очевидно, посторонний закрывающий тег так же недействителен, как и вложенный виртуальный хост.