Frage Apache-Fehler "konnte den vollqualifizierten Domänennamen des Servers nicht zuverlässig ermitteln"


Wenn ich meinen Apache Server mit dem Befehl neu starte

sudo /etc/init.d/apache2 restart

Ich erhalte den folgenden Fehler:

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 anstelle von 127.0.0.1? Was verursacht diesen Fehler?


385
2018-02-14 13:09


Ursprung




Antworten:


13.04 und älter

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

Wenn Sie eine einfügen

ServerName localhost   

in beiden httpd.conf oder apache2.conf im /etc/apache2 und starten Sie Apache neu, der Hinweis verschwindet.

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


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

127.0.0.1 localhost
127.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"

dann füge hinzu

ServerName localhost

in die Datei und speichern. Dies kann alles in einem einzigen Befehl mit den folgenden 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).


470
2018-02-14 13:18



Dies wird auch in der Ubuntu LAMP Setup-Dokumentation für erwähnt Fehlerbehebung bei Apache. Dort empfehlen sie, eine Datei /etc/apache2/conf.d/fqdn mit zu erstellen ServerName localhost drin - icc97
Sehr gute Antwort - aber ich würde auch empfehlen, es in das Verzeichnis conf.d zu legen :) - cwd
/etc/apache2/conf.d/ existiert nicht nach meiner Installation von lamp-server^ in 14.04 - redanimalwar
@redanimalwar Für 13.10 und neuer siehe @ Starxs Antwort unten. - Dan
Für den allerletzten Schritt (Erstellen von Sym-Link in 14.04) würde ich empfehlen sudo a2enconf fqdn obwohl es technisch gleich sein sollte. - yoshi


13.10 oder neuer

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

Apache verwendet nicht mehr das conf.d Verzeichnis. Alle Konfigurationsdateien sind darin gespeichert /etc/apache2/conf-available Verzeichnis und alle Konfigurationsdateien sollten jetzt ein .conf Erweiterung.

Um diese Nachricht in Apache 2.4 zu lösen, müssen wir eine Konfigurationsdatei innerhalb des conf-available Verzeichnisses 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 vorherigen zwei Befehle in einem kombinieren mit:

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

Wenn Sie einen Domainnamen oder einen anderen Namen je nach Anforderung verwenden möchten, ersetzen Sie ihn einfach localhost mit was auch immer du brauchst. 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, um eine Konfigurationsdatei in Apache 2.4 zu aktivieren. Beachten Sie auch das servername Der obige Befehl stammt vom Namen der Konfigurationsdatei servername.conf. Wenn deine Konfigurationsdatei war ngenericserver.conf dann müsstest du schreiben sudo a2enconf ngenericserver.

Danach laden Sie den Server neu und die obige Nachricht wird Sie nicht mehr belästigen.

sudo service apache2 reload

oder

sudo apache2ctl graceful

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


158
2017-12-26 18:45



Kann jemand Apache sagen? welche Config-Datei, mit der es das Problem hat? Ich weiß nicht, warum Entwickler nie daran denken, dies in ihre Fehlermeldungen zu schreiben - es braucht kaum Code! - John Y
Wenn ich einen Internet-fqdm für diesen Server habe, ist das der Ort, um es zu setzen? Dh sollte ich myhost.org anstelle von localhost ersetzen? - CPBL
@CPBL Dies ist der Standardservername für alle Sites. Wenn Sie nur eine Website haben, ist dies alles, was Sie tun müssen. Wenn Sie mehrere Standorte auf Ihrem Server haben, müssen Sie auch die Server-Anweisung für jede Site in ihrer jeweiligen virtuellen Host-Konfiguration hinzufügen. - Dan
Funktioniert auf 14.04 LTS. - Parto
Ihr zitierter Link scheint tot, bitte beheben. - Fredrick Gauss


  • Öffnen Sie ein Terminal
  • Öffne das /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] Starte Standard-Editor, siehe sudo update-alternatives --config editor


24
2018-02-14 13:17



nach dem Ausführen des letzten Befehls tritt der folgende Fehler auf ** Neustart des Webservers apache2 / usr / sbin / apache2ctl: 87: ulimit: Fehlereinstellungsgrenze (Operation nicht erlaubt) / usr / sbin / apache2ctl: 87: ulimit: Fehlereinstellungsgrenze (Operation not erlaubt) (13) Berechtigung verweigert: make_sock: konnte nicht an die Adresse 0.0.0.0:80 gebunden werden, keine hörenden Sockets verfügbar, heruntergefahren Protokoll konnte nicht geöffnet werden Aktion 'start' fehlgeschlagen. Das Apache-Fehlerprotokoll enthält möglicherweise weitere Informationen. [fehlgeschlagen] ** @ green7 - Deepu
versuche 'sudo service apache2 restart' - waterloo2005


Apache2 kann den FQDN auch von einem korrekt konfigurierten System-Hostnamen anstelle von hardcoded in die Apache-Konfigurationsdatei holen. Hardcoding wird auch Verwirrung verursachen, wenn sich der Hostname ändert. Du brauchst eigentlich keine ServerName Richtlinien in httpd.conf oder irgendwelche Apache Config-Dateien.

Setze folgendes ein: /etc/hosts:

# IPv4 and IPv6 localhost aliases
127.0.0.1 hostname.domainname.com  hostname  localhost
::1       hostname.domainname.com  hostname  localhost

woher hostname.domainname.com ist der FQDN Ihrer Maschine.

Zusammen mit einem korrekt konfigurierten Hostnamen in /etc/hostname/ oder mit hostnamectl, dies wird auch anderen Diensten auf Ihrem Rechner helfen, ordnungsgemäß zu laufen (d. h. die Login-Eingabeaufforderung zeigt an This is hostname.domainname.com Anstatt von This is hostname.unknown_domain.)


22
2017-09-18 18:05



+1 für "ein richtig konfigurierter System-Hostname". Ich wollte den Server richtig konfigurieren. Dies hat auch meinen Fehler im Log behoben [warn] RSA server certificate CommonName (CN) <fqdn> does NOT match server name!? - transistor1
Denkst du, das sollte mit Apache 2.2.22 funktionieren? Ich bekomme immer noch "konnte den vollqualifizierten Domänennamen des Servers nicht zuverlässig ermitteln, indem er 127.0.1.1 für ServerName verwendet" - David Winiecki
Ist hostname localhost soll sein myubuntuservername localhost? Oder das String-Literal hostname localhost? Du warst in deiner Antwort nicht klar - Jonathan
Dies sollte die akzeptierte Antwort sein. Es scheint, dass Sie den FQDN möglicherweise der statischen IP-Adresse zuordnen müssen 127.0.0.1obwohl. - Skippy le Grand Gourou


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

sudo nano /etc/apache2/apache2.conf

Fügen Sie das folgende neue Zeilenende der Datei hinzu:

ServerName localhost

Dann starte Apache2 neu:

sudo service apache2 restart

Es ist fertig.


15
2018-04-16 06:38





Ich finde es ein bisschen besser, eine neue Datei 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 Verteilungspaket 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.


4
2017-09-06 15:31





In Ubuntu 16.04:

sudo -i

echo 'ServerName localhost' > /etc/apache2/conf-available/server-name.conf
a2enconf server-name

2
2018-04-17 13:26





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 Erinnerung für einen Freund


1
2017-07-05 09:36