Nieprawidłowe polecenie „VirtualDocumentRoot”

13

Nie jestem pewien, dlaczego pojawia się następujący błąd podczas ponownego uruchamiania Apache:

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

Fragment, do którego się odnosi, to:

<VirtualHost *:80>
        ServerAdmin [email protected]
        VirtualDocumentRoot /local/www/staging/%1

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

Założyłem, że to błąd pisowni, ale został skopiowany bezpośrednio z innego mojego serwera. Działa tam idealnie. Jakieś pomysły?

andy
źródło

Odpowiedzi:

27

Dokumentacja sugeruje, że dyrektywę zapewnia moduł vhost_alias. Powinieneś upewnić się, że masz

LoadModule vhost_alias_module modules/mod_vhost_alias.so

dyrektywa konfiguracyjna w pliku konfiguracyjnym serwera, na którym nie działa.

Szalony Kapelusznik
źródło
12
Dziękuję Ci bardzo! To pomogło mi rozwiązać. Kod, który opublikowałeś, nie działał bezpośrednio, ale załadowałem moduł, używając:a2enmod vhost_alias
andy
Dobrze dla ciebie, jeśli zaczynasz od podpowiedzi i mocniej kopiesz - w ten sposób leży doskonałość!
MadHatter
3

Miałem taki sam błąd, jak podany przez Andy'ego, ale w moim przypadku sytuacja jest nieco inna. A na podstawie odpowiedzi MadHattera mogłem wymyślić problem.

Mój serwer apache2 był nieco inny. Ma 2 katalogi, a mianowicie /etc/apache2/mods-available& /etc/apache2/mods-enabled. W katalogu mods-availablezobaczysz listę ładowalnego pliku konfiguracyjnego modułu, w tym przypadku widzę plik o nazwie vhost_alias.loadzawierającej konfigurację jako

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

Aby użyć tej konfiguracji, użyłem poniższego polecenia:

sudo a2enmod vhost_alias
datnt
źródło