Недійсна команда '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.