Ubuntu Apache2 DefaultRuntimeDir muss ein gültiges Verzeichnis sein, absolut oder relativ zu ServerRoot

Ubuntu Apache2 DefaultRuntimeDir muss ein gültiges Verzeichnis sein, absolut oder relativ zu ServerRoot

Ich habe einen Webserver mit Ubuntu 17.04, den ich gerade einrichten möchte Apache. Alles lief prima, bis ich mich entschied, zwei Websites auf einer einzigen Maschine über virtualHosts zu hosten. Jetzt apacheweigert er sich, zu starten, obwohl auch nur ein einziger Host aktiviert ist. Bei jedem Startversuch Apacheerhalte ich diese Fehlermeldung:

apache2: Syntax error on line 80 of /etc/apache2/apache2.conf:
DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot.

Keiner meiner Versuche, dies zu beheben, hat zu etwas geführt, einschließlich:

apt purge apache2 && rm -r /etc/apache2 

Zeile 80 der Fehlermeldung sagt mir nur DefaultRuntimeDir ${APACHE_RUN_DIR}:

Und ich sehe zu keinem Zeitpunkt, wo was APACHE_RUN_DIRdeklariert ist oder was nicht.

Kann mir jemand helfen?

Antwort1

Der Befehl

source /etc/apache2/envvars

hat mein Problem gelöst (nachdem ich ALLE anderen ausprobiert hatte).

Um zu prüfen, ob alles in Ordnung ist, verwenden Sie den Befehl

apache2 -S

Ich fand, dass das schneller war, als meine DNS-Einträge zu verwenden.

Antwort2

Es fehlt ein Update in „man apache2“, zumindest für die Option -V;

Heute sollte man entweder "apachectl" oder "apache2ctl" verwenden statt

"apache2" für zumindest einige Optionen, wie in

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879571

Antwort3

Apache2 verwendet /etc/apache2/envvarsUmgebungsvariablen zum Festlegen. Sie können diese Informationen verwenden, um sicherzustellen, dass das Verzeichnis, ${APACHE_RUN_DIR}auf das verwiesen wird, gültig ist.

Beim Upgrade von 14.04 auf 17.04 trat bei mir dasselbe Problem auf. Das Problem war: ${APACHE_RUN_DIR}war auf eingestellt /var/run/apache2, aber der Ordner apache2 fehlte in /var/run.

Die Lösung für mich war:mkdir /var/run/apache2

Antwort4

in meinem Fall bezog es sich auf die Zeile „Require all denied“ in der Datei apache2.conf, die (wiederum) in meinem Fall nur als „Require denied“ eingegeben wurde.

verwandte Informationen