Ungültiger Befehl 'VirtualDocumentRoot'

13

Ich bin mir nicht sicher, warum beim Neustart von Apache die folgende Fehlermeldung angezeigt wird:

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

Das Snippet, auf das es sich bezieht, ist folgendes:

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

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

Ich nahm an, dass es ein Rechtschreibfehler war, aber es wurde direkt von einem anderen Server von mir kopiert. Es funktioniert dort perfekt. Irgendwelche Ideen?

Andy
quelle

Antworten:

27

Aus der Dokumentation geht hervor , dass die Direktive vom Modul vhost_alias bereitgestellt wird. Sie sollten sicherstellen, dass Sie die haben

LoadModule vhost_alias_module modules/mod_vhost_alias.so

Konfigurationsanweisung in der Konfigurationsdatei des Servers, auf dem es nicht funktioniert.

MadHatter
quelle
12
Vielen Dank! Das hat mir geholfen, es zu lösen. Der Code, den Sie gepostet haben, hat nicht direkt funktioniert, aber ich habe das Modul mit folgendem a2enmod vhost_alias
Befehl
Gut für Sie, dass Sie von einem Hinweis ausgehen und härter graben - so entsteht Exzellenz!
MadHatter
3

Ich hatte den gleichen Fehler wie Andy, aber in meinem Fall ist die Situation etwas anders. Und aus der Antwort von MadHatter könnte ich das Problem ersinnen.

Mein Apache2-Server war ein bisschen anders. Es hat 2 Verzeichnisse nämlich /etc/apache2/mods-available& /etc/apache2/mods-enabled. Innerhalb des Verzeichnisses mods-availablewird eine Liste der ladbaren Modulkonfigurationsdateien angezeigt. In diesem Fall wird eine Datei mit dem Namen angezeigt, vhost_alias.loaddie die Konfiguration als enthält

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

Daher habe ich den folgenden Befehl verwendet, um diese Konfiguration zu aktivieren:

sudo a2enmod vhost_alias
datnt
quelle