Apache-Fehler "Der vollqualifizierte Domänenname des Servers konnte nicht zuverlässig ermittelt werden"

Wenn ich meinen Apache-Server mit dem Befehl neu starte

sudo /etc/init.d/apache2 restart

Ich erhalte die folgende Fehlermeldung:

Restarting web server apache2apache2: 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 anstelle von 127.0.0.1? Was verursacht diesen Fehler?

13.04 und älter

Dies ist nur eine freundliche Warnung und nicht wirklich ein Problem (da etwas nicht funktioniert).

Wenn du gehst:

/etc/apache2/apache2.conf

und einfügen:

ServerName localhost   

und starten Sie dann Apache neu, indem Sie in das Terminal eingeben:

sudo systemctl reload apache2

die Benachrichtigung verschwindet.

Wenn du einen Namen drin hast /etc/hostname sie können diesen Namen auch anstelle von verwenden localhost.


Und es verwendet 127.0.1.1 wenn es in deinem ist /etc/hosts:

127.0.0.1 localhost127.0.1.1 myhostname

Bevorzugte Methode

Fehlerbehebung bei Apache

Wenn Sie diesen Fehler erhalten:

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 Befehlszeile 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"

fügen

ServerName localhost

in die Datei und speichern. Dies alles kann in einem einzigen Befehl mit folgendem Befehl erfolgen:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

Aber auf Ubuntu 14.04:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf sudo a2enconf fqdn

Vergessen Sie nicht die ".conf" (ohne wird nicht funktionieren).

13.10 oder neuer

Ab Apache 2.4 - der standardmäßig ab 13.10 verfügbar ist - können Sie die Methode zum Hinzufügen einer Konfigurationsdatei in der conf.d Verzeichnis.

Apache verwendet nicht mehr die conf.d Verzeichnis. Alle Konfigurationsdateien werden im Inneren gespeichert /etc/apache2/conf-available verzeichnis und alle Konfigurationsdateien sollten nun eine .conf Erweiterung.

Um diese Meldung in Apache 2.4 zu beheben, müssen wir eine Konfigurationsdatei im Verzeichnis conf-available erstellen. Beispielsweise 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 in einem kombinieren mit:

echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf

Wenn Sie je nach Anforderung einen Domainnamen oder einen anderen Namen verwenden möchten, ist dies in Ordnung, ersetzen Sie einfach localhost mit allem, was Sie brauchen. 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 stammt aus dem Namen der Konfigurationsdatei servername.conf. Wenn Ihre Konfigurationsdatei war ngenericserver.conf dann müsstest du schreiben sudo a2enconf ngenericserver.

Danach lade den Server neu und die obige Nachricht wird dich nicht mehr stören.

sudo service apache2 reload

oder

sudo apache2ctl graceful

Danach sehen Sie, dass die Nachricht nicht mehr angezeigt wird und das Problem behoben ist.

Apache2 kann den FQDN auch von einem ordnungsgemäß konfigurierten System-Hostnamen abrufen, anstatt fest in die Apache-Konfigurationsdatei codiert zu sein. Eine harte Codierung führt auch zu Verwirrung, wenn sich der Hostname ändert. Du brauchst eigentlich keine ServerName richtlinien in httpd.conf oder irgendwelche Apache-Konfigurationsdateien.

Fügen Sie Folgendes ein /etc/hosts:

# IPv4 and IPv6 localhost aliases127.0.0.1 hostname.domainname.com  hostname  localhost::1       hostname.domainname.com  hostname  localhost

wo hostname.domainname.com ist der FQDN Ihres Computers.

Zusammen mit einem richtig konfigurierten Hostnamen in /etc/hostname/ oder mit hostnamectl, dies wird auch dazu beitragen, dass andere Dienste auf Ihrem Computer ordnungsgemäß ausgeführt werden (dh die Anmeldeaufforderung wird angezeigt This is hostname.domainname.com statt This is hostname.unknown_domain.)

  • Öffnen Sie ein Terminal
  • Öffnen Sie die /etc/apache2/httpd.conf Datei:

    sudo editor /etc/apache2/httpd.conf # [1]
  • Standardmäßig wäre es leer. Fügen Sie einfach die folgende Zeile hinzu:

    ServerName localhost
  • Speichern Sie die Datei und beenden Sie sie

  • Starten Sie den Server neu

    sudo service apache2 restart

[1] Starten Sie den Standardeditor, siehe sudo update-alternatives --config editor

In der neuen Version von apache2 folgen Sie einfach dem folgenden Befehl:

sudo nano /etc/apache2/apache2.conf

Fügen Sie die folgende neue Zeile am Dateiende hinzu:

ServerName localhost

Starten Sie dann apache2 neu:

sudo service apache2 restart

Es ist geschafft.

Ich finde es etwas besser, eine neue Datei in zu erstellen /etc/conf.d das zu ändern entweder apache2.conf oder httpd.conf.

Es ist eine persönliche Vorliebe, die meine Konfigurationsänderungen vom Distributionspaket getrennt hält. Updates sind also weniger kompliziert.

Ich erstelle die Datei /etc/apache2/conf.d/AAserverName und es enthält nur:

ServerName myhost.mycomain.tld

Die anderen Vorschläge funktionieren sicherlich auch.

Unter Ubuntu 16.04:

sudo -iecho 'ServerName localhost' > /etc/apache2/conf-available/server-name.confa2enconf server-name

Auf Ubuntu 16.04 herunterladen:

Hinzufügen ServerName localhost zur Datei httpd.conf verwenden Sie den folgenden Befehl.

sudo vi  /etc/apache2/httpd.conf

Dann füge diese Zeile ein Include httpd.conf am Ende dieser Datei

sudo vi /etc/apache2/apache2.conf

Suchen Sie erneut nach Syntaxfehlern

sudo apache2ctl configtest

Du solltest jetzt bekommen

Syntax OK

Sie können den Server jetzt ordnungsgemäß neu starten, indem Sie die Konfiguration neu laden

sudo service apache2 reload

oder beenden Sie den Prozess und starten Sie erneut

sudo service apache2 restart

Hinzufügen ServerName localhost

Zu

 sudo leafpad /etc/apache2/apache2.conf sudo leafpad /etc/apache2/httpd.conf

Es ist kein Fehler.. Es ist nur eine Freundeserinnerung

Angeben ServerName localhost in Ihren Konfigurationsdateien außerhalb der Abschnitte des virtuellen Hosts können Sie dies tun.

Einige andere Antworten schlagen vor, dass Sie ändern sollten /etc/apache2/httpd.conf. Diese Datei wird überschrieben, wenn Apache von apt aktualisiert wird. Für Apache-Konfigurationen, die nicht überschrieben werden sollen, sollten Sie eine neue Datei erstellen. Hier ist der "Debian-Weg", um diese Konfigurationsänderung vorzunehmen:

# create the configuration file in the "available" sectionecho "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf# enable it by creating a symlink to it from the "enabled" sectionsudo a2enconf servername# restart the serversudo service apache2 restart

Dies ist im Grunde das gleiche wie Starks Antwort, jedoch in einer einfach zu kopierenden und einzufügenden Skriptform. Ich hatte dies ursprünglich in einer Frage gepostet, die als Duplikat markiert war: https://askubuntu.com/a/432408