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?

Timhyd
quelle

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.

ianm
quelle
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
7

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

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

"apache2" für mindestens einige Optionen, wie in angegeben

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

Rocdufer
quelle
Es ist überhaupt nicht klar, wie dies die Frage beantwortet.
Randy Cragun
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

Niyol
quelle
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.

Гдето Якутский
quelle
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
Vladimir Ch
quelle