
Wenn ich meinen Apache-Server mit dem Befehl neu starte
sudo /etc/init.d/apache2 restart
Ich erhalte die folgende Fehlermeldung:
Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2:
Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Verwendet der Server 127.0.1.1 statt 127.0.0.1? Was verursacht diesen Fehler?
Antwort1
13.04 und älter
Dies ist nur eine freundliche Warnung und kein wirkliches Problem (im Sinne von, dass etwas nicht funktioniert).
Wenn du nach ... gehst:
/etc/apache2/apache2.conf
und einfügen:
ServerName localhost
und starten Sie Apache dann neu, indem Sie Folgendes in das Terminal eingeben:
sudo systemctl reload apache2
der Hinweis verschwindet.
Wenn ein Name darin enthalten ist, /etc/hostname
können Sie diesen Namen auch anstelle von verwenden localhost
.
Und es wird verwendet 127.0.1.1
, wenn es sich in Ihrem befindet /etc/hosts
:
127.0.0.1 localhost
127.0.1.1 myhostname
Fehlerbehebung bei Apache
Wenn dieser Fehler auftritt:
apache2: Could not determine the server's fully qualified domain name,
using 127.0.0.1 for ServerName
Verwenden Sie dann einen Texteditor wie „sudo nano“ in der Kommandozeile oder „gksudo gedit“ auf dem Desktop, um eine neue Datei zu erstellen,
sudo nano /etc/apache2/conf.d/fqdn
oder
gksu "gedit /etc/apache2/conf.d/fqdn"
dann füge hinzu
ServerName localhost
in die Datei und speichern. Dies alles kann mit einem einzigen Befehl wie folgt erledigt werden:
echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn
Aber unter Ubuntu 14.04:
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf
sudo a2enconf fqdn
Vergessen Sie nicht die „.conf“ (ohne geht es nicht).
Antwort2
13.10 oder neuer
Ab Apache 2.4 – standardmäßig verfügbar ab 13.10 – können Sie die Methode zum Hinzufügen einer Konfigurationsdatei im conf.d
Verzeichnis nicht mehr verwenden.
Apache verwendet das Verzeichnis nicht mehr conf.d
. Alle Konfigurationsdateien werden im /etc/apache2/conf-available
Verzeichnis gespeichert und alle Konfigurationsdateien sollten jetzt eine .conf
Erweiterung haben.
Um diese Meldung in Apache 2.4 zu beheben, müssen wir eine Konfigurationsdatei im Verzeichnis conf-available erstellen. Zum Beispiel servername.conf
.
sudo vi /etc/apache2/conf-available/servername.conf
Und darin müssen wir nur eine Zeile hinzufügen
ServerName localhost
Sie können die beiden vorherigen Befehle mit einem kombinieren:
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
Wenn Sie einen Domänennamen oder einen anderen Namen verwenden möchten, ist das je nach Bedarf in Ordnung. Ersetzen Sie ihn einfach localhost
durch den gewünschten Namen. Als nächstes müssen Sie diese Konfiguration aktivieren. Dazu müssen Sie den folgenden Befehl ausführen:
sudo a2enconf servername
a2enconf
ist ein Befehl zum Aktivieren einer Konfigurationsdatei in Apaches 2.4. Beachten Sie auch, dass servername
der obige Befehl vom Namen der Konfigurationsdatei stammt servername.conf
. Wenn Ihre Konfigurationsdatei ngenericserver.conf
dies wäre, müssten Sie schreiben sudo a2enconf ngenericserver
.
Laden Sie danach den Server neu und die obige Meldung wird Sie nicht mehr stören.
sudo service apache2 reload
oder
sudo apache2ctl graceful
Danach werden Sie feststellen, dass die Meldung nicht mehr angezeigt wird und das Problem behoben ist.
Antwort3
Apache2 kann den FQDN auch von einem richtig konfigurierten Systemhostnamen beziehen, anstatt ihn in der Apache-Konfigurationsdatei fest zu codieren. Eine Festcodierung führt auch zu Verwirrung, wenn sich der Hostname ändert. Sie benötigen eigentlich keine ServerName
Anweisungen httpd.conf
oder Apache-Konfigurationsdateien.
Tragen Sie folgendes ein /etc/hosts
:
# IPv4 and IPv6 localhost aliases
127.0.0.1 hostname.domainname.com hostname localhost
::1 hostname.domainname.com hostname localhost
wo hostname.domainname.com
ist der FQDN Ihrer Maschine.
Zusammen mit einem richtig konfigurierten Hostnamen in /etc/hostname/
oder mit hostnamectl
trägt dies auch dazu bei, dass andere Dienste auf Ihrem Computer ordnungsgemäß ausgeführt werden (z. B. wird die Anmeldeaufforderung This is hostname.domainname.com
anstelle von angezeigt This is hostname.unknown_domain
).
Antwort4
In der neuen Version von Apache2 müssen Sie nur den folgenden Befehl ausführen:
sudo nano /etc/apache2/apache2.conf
Fügen Sie am Ende der Datei die folgende neue Zeile hinzu:
ServerName localhost
Starten Sie dann Apache2 neu:
sudo service apache2 restart
Es ist fertig.