httpd: nie można wiarygodnie określić w pełni kwalifikowanej nazwy domeny serwera przy użyciu 127.0.0.1 dla ServerName


172

Próbowałem ponownie uruchomić serwer Apache na CentOS 5.0 i otrzymałem ten komunikat:

httpd: nie można wiarygodnie określić w pełni kwalifikowanej nazwy domeny serwera przy użyciu 127.0.0.1 dla ServerName

Oto /etc/hostsplik:

127.0.0.1    server4-245    server4-245.com    localhost.localdomain localhost
::1        localhost6.localdomain6 localhost6

Oto /etc/sysconfig/networkplik:

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=server4-245

Mam to również w pliku httpd.conf Apache:

ServerName localhost

Jednak nadal otrzymuję pierwszy komunikat o błędzie po ponownym uruchomieniu Apache.


1
Zapewnić edytowane prawo httpd.conf. Zwykle ServerName xyjest w porządku.
KingCrunch

Odpowiedzi:


95

Twój plik hosts nie zawiera prawidłowej nazwy FQDN ani localhostnazwy FQDN. W pełni kwalifikowana nazwa domeny musi zawierać część nazwy hosta, a także część nazwy domeny. Na przykład poniżej przedstawiono prawidłową nazwę FQDN:

host.server4-245.com

Wybierz nazwę FQDN i umieść ją w swoim /etc/hostspliku zarówno pod adresami IPv4, jak i IPv6, których używasz (w twoim przypadku localhostlub 127.0.0.1), a następnie zmień ServerNamekonfigurację httpd, aby była zgodna.

/ etc / hosts:

127.0.0.1    localhost.localdomain localhost host.server4-245.com
::1          localhost.localdomain localhost host.server4-245.com

httpd.conf:

ServerName host.server4-245.com

6
Zauważ również, że będziesz chciał zmodyfikować wpis NAZWA HOSTA w pliku / etc / sysconfig / network, aby pasował do wybranej przez Ciebie nazwy.
Paul Stengel

2
Hmm. Mam: 127.0.0.1 localhost gondor gondor.localdomain 192.168.0.3 gondor.localdomain ale wygląda na to, że linux nie uważa, że ​​gondor.localdomain również jest FQDN. Jaki jest z tym problem? Czy muszę mieć TLD?
Adam

Cześć, wypróbowałem wszystkie powyższe i nadal otrzymuję te same błędy, nie do końca rozumiem, czego mi tutaj brakuje. Moja nazwa FQDN to ak.local.com ustawiona w taki sam sposób, jak Twoja odpowiedź, ale nadal pojawiają się te same problemy. Używam OSX 10.10
AKFourSeven

1
Okazało się, że: 127.0.0.1 myserver myserver.mydom.com ... etc << nie działa 127.0.0.1 myserver.mydom.com myserver ... etc << działa
Martin

208

Jeśli nie masz httpd.confw folderze /etc/apache2, powinieneś mieć apache2.conf - po prostu dodaj:

Nazwa_serwera localhost

Następnie uruchom ponownie apache2usługę.


2
Działał idealnie na Ubuntu 12.04 LTS z wieloma wirtualnymi hostami.
Gor

3
Działał doskonale na Mac OS 10.7.5 z wieloma wirtualnymi hostami.
DudeOnRock

1
Pracowałem na Mac OS 10.7.5 z Virtualboxem
iWizard

3
Działał doskonale na Centos 6.4.
Kel Solaar

7
Działał doskonale na Centos 6 (wersja w chmurze), chociaż httpd.conf znajdował się w / etc / httpd / conf /
gbarry

64

Po początkowej instalacji serwera Apache podczas ponownego uruchamiania usługi Apache na Ubuntu 12.04 (Precise Pangolin) wyskoczył następujący błąd

Rozwiązanie jest naprawdę proste. Po prostu dodaj ServerNamedyrektywę do /etc/apache2/httpd.conf:

sudo nano /etc/apache2/httpd.conf

Dodaj: ServerName localhost

Na koniec zrestartuj serwer Apache:

sudo /etc/init.d/apache2 restart

1
W CentOS 7, ścieżka będzie /etc/httpd/conf/httpd.conf
Debashis

11

Tak więc, mimo że odpowiedź na to pytanie jest akceptowana, nadal pojawia się jako najlepszy wynik wyszukiwania, a odpowiedzi, choć określone (po wielu badaniach), sprawiły, że drapałem się po głowie i kopałem dużo dalej. Oto krótki schemat rozwiązania problemu.

Zakładając, że mój serwer to myserver.myhome.com, a mój statyczny adres IP to 192.168.1.150:

  1. Edytuj plik hosts

    $ sudo nano -w /etc/hosts
    
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    
    127.0.0.1 myserver.myhome.com myserver
    
    192.168.1.150 myserver.myhome.com myserver
    
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    ::1 myserver.myhome.com myserver
    
  2. Edytuj plik httpd.conf

    $ sudo nano -w /etc/apache2/httpd.conf
    
    ServerName myserver.myhome.com
    
  3. Edytuj sieć

    $ sudo nano -w /etc/sysconfig/network HOSTNAME=myserver.myhome.com
    
  4. Zweryfikować

    $ hostname
    
    (output) myserver.myhome.com
    
    $ hostname -f
    
    (output) myserver.myhome.com
    
  5. Uruchom ponownie Apache

    $ sudo /etc/init.d/apache2 restart
    

Okazało się, że różnica myserver.myhome.comdotyczyła zarówno adresu 127.0.0.1, jak i statycznego adresu IP 192.168.1.150 w pliku hosts. To samo na Ubuntu Server i CentOS.


9

W httpd.conf wyszukaj „ServerName”. Zwykle jest domyślnie komentowany na Macu. Po prostu odkomentuj go i wypełnij. Upewnij się, że masz również wpisaną nazwę / ip w / etc / hosts.


Dzięki, to było pomocne. httpd nie odebrał mojego fqdn w / etc / hosts, a moja nazwa hosta wyglądała na poprawnie skonfigurowaną.
Banjer

8

Upewnij się, że edytujesz właściwy httpd.conf plik, wtedy błąd o niewiarygodnej nazwie domeny serwera powinien zniknąć (jest to najczęstszy błąd).

Aby zlokalizować httpd.confplik konfiguracyjny Apache, uruchom:

apachectl -t -D DUMP_INCLUDES

Następnie edytuj plik i odznacz lub zmień ServerNamewiersz na:

ServerName localhost

Następnie zrestartuj swój apache przez: sudo apachectl restart


1
„Upewnij się, że edytujesz właściwy plik htttpd.conf” - pomogło mi to w systemie macOS. Nie edytowałem właściwego http.confpliku. Dzięki.
Asme Just


3

Istnieją dwa sposoby rozwiązania tego błędu:

  1. Include /etc/apache2/httpd.conf

    Dodaj powyższą linię w pliku /etc/apache2/apache2.conf

  2. Dodaj tę linię na końcu pliku /etc/apache2/apache2.conf :

    Nazwa_serwera localhost


1

Rozwiązałem problem z pełną kwalifikowaną nazwą domeny przy różnych okazjach, dodając nazwę mojego serwera do pliku /etc/apache2/httpd.conf i do /etc/apache2/apache2.confpliku.

Wpisz hostname -fswój terminal. To zapytanie zwróci twoją nazwę hosta.

Następnie edytuj /etc/apache2/httpd.confplik (lub utwórz go, jeśli z jakiegoś powodu nie istnieje) i dodajServerName <your_hostname> .

Ewentualnie udało mi się również wyeliminować wiadomość, dodając ServerName <your_hostname>do/etc/apache2/apache2.conf pliku.

Jeśli wszystko pójdzie dobrze, po ponownym uruchomieniu Apache wiadomość zniknie.


1

Większość odpowiedzi sugeruje dodanie ServerName localhostdo /etc/apache2/apache2.conf.

Ale cytując dokumentację Apache  :

Obecność tego komunikatu o błędzie wskazuje również, że serwer httpd serwera Apache nie mógł uzyskać w pełni kwalifikowanej nazwy hosta, wykonując wyszukiwanie wsteczne adresu IP serwera. Chociaż powyższe instrukcje pozwolą usunąć ostrzeżenie w każdym przypadku, dobrym pomysłem jest również naprawienie rozpoznawania nazw, aby odwrotne mapowanie działało.

Dlatego dodanie takiej linii do /etc/hostsjest prawdopodobnie bardziej niezawodnym rozwiązaniem:

192.0.2.0  foobar.example.com  foobar

gdzie 192.0.2.0 to statyczny adres IP serwera wymienionego foobarw example.comdomenie.

Można sprawdzić FQDN np. Za pomocą

hostname -A

(skrót do hostname --all-fqdn).


1

Okazuje się, że miałem ten problem i to dlatego, że użyłem "tabulatorów" do wcięcia linii zamiast spacji. Po prostu publikuję, na wypadek gdyby to komuś pomogło.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.