it-swarm.com.de

Apache-Fehler "Der vollständig qualifizierte 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 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? Wodurch wird dieser Fehler verursacht?

428
Deepu

6 # 13.04 und älter

Dies ist nur eine freundliche Warnung und kein wirkliches Problem (da etwas nicht funktioniert).

Wenn Sie eine einfügen

ServerName localhost   

in Apache2.conf in /etc/Apache2 und starte Apache neu, der Hinweis verschwindet.

Wenn Sie einen Namen in /etc/hostname haben, können Sie diesen Namen auch anstelle von localhost verwenden.


Und es benutzt 127.0.1.1, wenn es sich in Ihrem /etc/hosts befindet:

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 mit einem einzigen Befehl ausgeführt werden:

 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).

506
Rinzwind

13.10 oder neuer

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

Apache verwendet das Verzeichnis conf.d nicht mehr. Alle Konfigurationsdateien werden im Verzeichnis /etc/Apache2/conf-available gespeichert, und alle Konfigurationsdateien sollten jetzt die Erweiterung .conf haben.

Um diese Meldung in Apache 2.4 zu beheben, müssen wir eine Konfigurationsdatei im conf-available-Verzeichnis erstellen. Zum Beispiel servername.conf.

Sudo vi /etc/Apache2/conf-available/servername.conf

Und innerhalb dieses brauchen wir nur eine Zeile hinzuzufü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 einen Domainnamen oder einen anderen Namen verwenden möchten, ersetzen Sie 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 im obigen Befehl aus dem Namen der Konfigurationsdatei servername.conf stammt. Wenn Ihre Konfigurationsdatei ngenericserver.conf wäre, müssten Sie Sudo a2enconf ngenericserver schreiben.

Nach diesem Reload wird der Server und die obige Meldung Sie 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.

176
Starx

Apache2 kann den FQDN auch von einem ordnungsgemäß konfigurierten Systemhostnamen beziehen, anstatt ihn fest in die Apache-Konfigurationsdatei zu codieren. Das Hardcodieren führt auch zu Verwirrung, wenn sich der Hostname ändert. Sie benötigen tatsächlich keine ServerName Direktiven in httpd.conf oder Apache-Konfigurationsdateien.

Fügen Sie in /etc/hosts Folgendes ein:

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

dabei ist hostname.domainname.com der vollqualifizierte Domänenname Ihres Computers.

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

28
Andrew Mao
  • Öffnen Sie ein Terminal
  • Öffnen Sie die Datei /etc/Apache2/httpd.conf:

    Sudo editor /etc/Apache2/httpd.conf # [1]
    
  • Standardmäßig ist 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] Standardeditor starten, siehe Sudo update-alternatives --config editor

26
green

In der neuen Version von Apache2 folgen Sie einfach dem 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.

20
empugandring

Ich finde, es ist ein bisschen besser, eine neue Datei in /etc/conf.d zu erstellen, um entweder Apache2.conf oder httpd.conf zu ändern.

Es ist eine persönliche Präferenz, die meine Konfigurationsänderungen vom Distributionspaket trennt. Updates sind also weniger kompliziert.

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

ServerName myhost.mycomain.tld

Die anderen Vorschläge funktionieren sicherlich auch.

6
areeda

In Ubuntu 16.04:

Sudo -i

echo 'ServerName localhost' > /etc/Apache2/conf-available/server-name.conf
a2enconf server-name
2
Eduardo Cuomo

ServerName localhost hinzufügen

Zu

 Sudo leafpad /etc/Apache2/Apache2.conf

 Sudo leafpad /etc/Apache2/httpd.conf

Es ist kein Fehler. Es ist nur eine Erinnerung an einen Freund

1
Serem

Wenn Sie in Ihren Konfigurationsdateien außerhalb der virtuellen Hostabschnitte ServerName localhost angeben, können Sie dies tun.

Einige andere Antworten schlagen vor, dass Sie /etc/Apache2/httpd.conf ändern sollten. Diese Datei wird überschrieben, wenn Apache von apt aktualisiert wird. Für die Apache-Konfiguration, die Sie nicht überschreiben möchten, sollten Sie eine neue Datei erstellen. Hier ist der "Debian-Weg", um diese Konfiguration zu ändern:

# create the configuration file in the "available" section
echo "ServerName localhost" | Sudo tee /etc/Apache2/conf-available/servername.conf
# enable it by creating a symlink to it from the "enabled" section
Sudo a2enconf servername
# restart the server
Sudo service Apache2 restart

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

1

Ein buntu 16.04:

Fügen Sie der Datei ServerName localhost mit dem folgenden Befehl httpd.conf hinzu.

Sudo vi  /etc/Apache2/httpd.conf

Fügen Sie dann diese Zeile Include httpd.conf am Ende dieser Datei ein

Sudo vi /etc/Apache2/Apache2.conf

Suchen Sie erneut nach Syntaxfehlern

Sudo Apache2ctl configtest

Sie sollten 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 Vorgang und beginnen Sie erneut

Sudo service Apache2 restart
1
daumie

Unter Ubuntu 11.10 habe ich diese Meldung zusammen mit einem hängengebliebenen Systemstart gesehen, weil meine Festplatte voll war. Eine der Protokolldateien war nicht mehr aktuell . Wahrscheinlich gab es eigentlich kein Problem mit Apache, aber diese Nachricht war der letzte Hinweis, der gegeben wurde, bevor der Boot hing.

Um das Problem zu beheben, musste ich in den Wiederherstellungsmodus booten und die unberechenbare Protokolldatei entfernen.

0
nobar

Führen Sie den folgenden Befehl aus:

apachectl -t -D DUMP_INCLUDES

um den Pfad zu Ihrer httpd.conf Konfigurationsdatei zu bestimmen, bearbeiten Sie diese Datei und kommentieren/ändern Sie die Zeile, die den Wert für die ServerName Option angibt, z.

ServerName localhost

Verwenden Sie für den Webserver den registrierten DNS-Namen (z. B. example.com).

Wenn Ihr Host keinen registrierten DNS-Namen hat, geben Sie hier seine IP-Adresse ein.

0
kenorb

Wenn Sie bash verwenden und minimale Abhängigkeiten möchten (und nur einen Einzeiler für Ihr Entrypoint-Skript, wenn Sie Docker verwenden wie ich), sollten diese beiden Optionen funktionieren.

Wenn Sie localhost wollen:

echo "ServerName localhost" >> /etc/Apache2/Apache2.conf

Wenn Sie den vorhandenen Hostnamen möchten:

echo "ServerName $(cat /etc/hostname)" >> /etc/Apache2/Apache2.conf

Dies verwendet die Bash-Umleitungsoperatoren , um die Zeichenfolge an das Ende der Datei anzuhängen. Echo fügt automatisch die neue Zeile ein, so dass Sie fertig sind.

0
Andrew Odri

Ein buntu 16.04:

Fügen Sie der Datei ServerName localhost mit dem folgenden Befehl httpd.conf hinzu.

Sudo vi  /etc/Apache2/httpd.conf

Fügen Sie dann diese Zeile Include httpd.conf am Ende dieser Datei ein

Sudo vi /etc/Apache2/Apache2.conf

Suchen Sie erneut nach Syntaxfehlern

Sudo Apache2ctl configtest

Sie sollten jetzt bekommen

Syntax OK

Sie können den Server jetzt ordnungsgemäß neu starten, indem Sie den Neustart des Konfigurations-Sudo-Dienstes Apache2 erneut laden

0
daumie