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 help@mydomain.com
        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?

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.