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


14

Ich habe einen Webserver mit Ubuntu 17.04, mit dem ich mich einrichten möchte Apache. Alles lief großartig, bis ich mich entschied, zwei Websites über virtualHosts auf einer einzigen Maschine zu hosten. Weigert apachesich jetzt , mit nur einem aktivierten Host zu starten. Bei jedem Startversuch wird folgende ApacheFehlermeldung angezeigt:

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 

Alle Zeile 80 der Fehlermeldung sagt mir, ist DefaultRuntimeDir ${APACHE_RUN_DIR}.

Und zu keinem Zeitpunkt sehe ich, wo oder was APACHE_RUN_DIRals deklariert ist.

Kann mir jemand helfen?

Antworten:


14

Der Befehl

source /etc/apache2/envvars

Ich habe mein Problem gelöst (nachdem ich ALLE anderen ausprobiert habe).

Verwenden Sie den Befehl, um zu überprüfen, ob alles in Ordnung ist oder nicht

apache2 -S

Ich fand, dass dies schneller war als die Verwendung meiner DNS-Einträge.


Ich habe das benutzt, source /etc/apache2/envvarsaber danach hat sich mein Home-Verzeichnis von ~auf geändert homeund als ich die CD geschrieben habe, wurde es angezeigt -bash: cd: HOME not set. Als ich die Envvars betrat, ist eine der ersten Zeilen # this won't be correct after changing uidund unset HOME. Irgendeine Idee, wie man das behebt?
Mihail Minkov


6

Apache2 verwendet /etc/apache2/envvarszum Festlegen von Umgebungsvariablen. Mit diesen Informationen können Sie sicherstellen, dass das Verzeichnis, auf das ${APACHE_RUN_DIR}verweist, gültig ist.

Beim Upgrade von 14.04 auf 17.04 trat das gleiche Problem auf. Problem war: ${APACHE_RUN_DIR}wurde auf gesetzt /var/run/apache2, aber der Ordner apache2 fehlte in /var/run.

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


7
Selbst wenn Sie den Ordner erstellt haben oder wenn der Ordner bereits angezeigt wird (wie in meiner Situation), müssen Sie den folgenden Befehl ausführen. source /etc/apache2/envvars
Peshmerge

Sie müssen den Befehl envvares nur ausführen, wenn Sie Apache ohne das Startskript starten. Wenn Sie init.d / system.d verwenden, wird die Datei automatisch bezogen.
Niyol

@ Peshmerge Danke! Können Sie mir sagen, wie ich es nach dem Neustart behalten soll? Es scheint, dass wir beim Neustart diesen Befehl jedes
Mal

1

In meinem Fall handelte es sich um die Zeile "Alle verweigert erforderlich" in der Datei "apache2.conf", die (erneut) in meinem Fall als "Nur verweigert erforderlich" eingegeben wurde.


0

Das erneute php5.6Apache-Modul hilft, dieses Problem zu beheben.

Drücken Sie Ctrl+ Alt+ Tund geben Sie Folgendes ein:

sudo a2dismod php5.6
sudo a2enmod php5.6

Starten Sie dann den apache2-Dienst neu:

sudo service apache2 restart
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.