Неверная команда 'VirtualDocumentRoot'


13

Я не уверен, почему я получаю следующую ошибку при перезагрузке apache:

Invalid command 'VirtualDocumentRoot', perhaps misspelled or defined by a module not included in the server configuration Action 'start' failed.

Фрагмент, на который он ссылается, таков:

<VirtualHost *:80>
        ServerAdmin help@mydomain.com
        VirtualDocumentRoot /local/www/staging/%1

        ServerAlias *.staging.mydomain.com
</VirtualHost>

Я предположил, что это было опечатка, как он сказал, но это было скопировано непосредственно с другого моего сервера. Там прекрасно работает. Есть идеи?

Ответы:


27

Документация предполагает, что директива предоставляется модулем vhost_alias. Вы должны убедиться, что у вас есть

LoadModule vhost_alias_module modules/mod_vhost_alias.so

Директива конфигурации в файле конфигурации сервера, на котором он не работает.


12
Большое спасибо! Это помогло мне решить это. Размещенный вами код не работал напрямую, но я загрузил модуль, используя:a2enmod vhost_alias
andy

Хорошо для вас, если вы начнете с подсказки и будете копать усерднее - в этом и заключается совершенство!
MadHatter

3

У меня была та же ошибка, что и Энди, но в моем случае ситуация несколько иная. И из ответа MadHatter я мог придумать проблему.

Мой сервер apache2 был немного другим. Имеет 2 каталога, а именно /etc/apache2/mods-available& /etc/apache2/mods-enabled. В каталоге mods-availableвы увидите список загружаемых конфигурационных файлов модуля, в этом случае я вижу файл с именем vhost_alias.loadконфигурации, который содержит

LoadModule vhost_alias_module /usr/lib/apache2/modules/mod_vhost_alias.so

Итак, я использовал команду ниже, чтобы включить эту конфигурацию:

sudo a2enmod vhost_alias
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.