Ich habe Apache2 auf Ubuntu 13.10 installiert. Wenn ich versuche, es mit neu zu starten
sudo /etc/init.d/apache2 restart
Ich erhalte diese Nachricht:
AH00558: apache2: Mit 127.0.1.1 konnte der vollständig qualifizierte Domänenname des Servers nicht zuverlässig ermittelt werden. Setzen Sie die Anweisung 'ServerName' global, um diese Nachricht zu unterdrücken
Also habe ich gelesen, dass ich meine httpd.conf
Datei bearbeiten soll . Da ich es jedoch nicht im /etc/apache2/
Ordner finden kann , habe ich versucht, es mit dem folgenden Befehl zu finden:
/usr/sbin/apache2 -V
Aber die Ausgabe, die ich bekomme, ist die folgende:
[Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Fri Nov 29 17:35:43.942560 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Fri Nov 29 17:35:43.942602 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Fri Nov 29 17:35:43.942613 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Fri Nov 29 17:35:43.942627 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.947913 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948051 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948075 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}
Zeile 74 von /etc/apache2/apache2.conf
lautet wie folgt:
Mutex file:${APACHE_LOCK_DIR} default
Ich habe mir meine /etc/apache2/envvar
Akte angesehen, weiß aber nicht, was ich damit anfangen soll.
Was soll ich machen?
apache-2.2
ubuntu
Kurt Bourbaki
quelle
quelle
Antworten:
Diese Meldung wird angezeigt, weil Sie die Apache2-Binärdatei direkt ausgeführt haben. In Ubuntu / Debian basiert die Apache-Konfiguration auf der Envvar-Datei, die nur aktiviert ist.
Wenn Sie Apache mit dem Init-Skript oder Apachectl starten.
Ihr ursprüngliches Problem ist, dass Sie keinen richtigen Hostnamen (fqdn) für Ihren Computer haben.
Wenn Sie es nicht ändern können, ändern Sie die
ServerName
Variable in/etc/apache2/apache2.conf
zulocalhost
oder Sie den gewünschten FQDN.quelle
ServerName localhost
aufapache2.conf
(weilhttpd.conf
nicht immer auf Ubuntu verwendet) und jetzt alles funktioniert , wie es sollte. Könnten Sie bitte Details zu Ihren Antworten hinzufügen, damit ich sie als akzeptiert kennzeichnen kann?apache2ctl
hat bei mir nicht funktioniert, ich musste den Service nutzen :sudo service apache2 restart
apache2
Kommando überhaupt gebrochen?AH00558: apache2: Could not reliably determine the server's fully qualified domain name
nur, aber nichtConfig variable ${APACHE_LOCK_DIR} is not defined
.Beschaffe deine Envvars, indem du es so ausführst:
und dann
Du solltest bekommen:
quelle
/etc/apache2/envvars
existiert nichtapachectl -V
anstatt die Umgebungsvariablen manuell zu laden.source /etc/apache2/envvars && sudo -E apache2 -V
oder melden Sie sich wieroot
oben beschrieben an. Das Sourcing der Apache2-Umgebung an einen regulären Benutzer, der dann sudo verwenden muss, funktioniert ohne "-E" nicht. Normale Benutzerrechte können unter anderem den privaten Ordner des Zertifikats nicht lesen. Sie erhalten eine Fehlermeldung. Sie müssen sudo -E oder vollständig unter dem Root-Account ausführen.CMD . /etc/apache2/envvars; /usr/sbin/apache2 -DFOREGROUND
Überprüfen Sie Ihr
/etc/apache2/envvars
APACHE_LOCK_DIR. In meinem Ubuntu 12.04 ist dieses/var/lock/apache2$SUFFIX
SUFFIX normalerweise leer.Überprüfen Sie, ob das Verzeichnis vorhanden und beschreibbar ist.
Kann es sein, dass die envvars-Datei nicht korrekt bezogen wurde? Wenn Sie einen Blick darauf werfen
/etc/init.d/apache2
, können Sie sehen, dass es bezogen wurde.Meine (Standard)
/etc/apache2/envvars
:Wenn nichts funktioniert, würde ich versuchen, die Pakete neu zu installieren.
quelle
Wie andere schon gesagt, müssen Sie (Quelle) Ihre Umgebung laden , bevor es läuft direkt Eine weitere Option ist das :
apache2ctl
zBsudo apache2ctl -S
meine Gastgeber zu entleeren
quelle
TL; DR; Sie sollten Apache2 mit dem starten, was Sie bereits haben:
Detailliert:
Diese Meldung bedeutet, dass Sie Ihren Servernamen / Domainnamen definieren müssen. Es ist nicht unbedingt erforderlich, dies für einen lokalen Host / Test der Produktion zu tun. Sie müssen sich keine Gedanken darüber machen.
Wenn Sie versuchen, es auf die andere Art und Weise auszuführen
apache2
, erhalten Sie diese Fehlermeldungen aufgrund der zuvor genannten Informationen: Die Umgebungsvariablen werden definiert, wenn Sie das Standardskript in verwendeninit.d
.quelle
Vielleicht löst dies Ihr Problem
quelle
Sie müssen den DocumentRoot von
/var/www/html
auf aktualisieren/var/www
Bearbeiten Sie die Datei /etc/apache2/sites-available/000-default.conf wie folgt
quelle
Das funktioniert bei mir
quelle