httpd: Не вдалося достовірно визначити повноцінне доменне ім’я сервера, використовуючи 127.0.0.1 для ServerName


172

Я спробував перезапустити сервер Apache на CentOS 5.0 і отримав це повідомлення:

httpd: Не вдалося достовірно визначити повноцінне доменне ім’я сервера, використовуючи 127.0.0.1 для ServerName

Ось /etc/hostsфайл:

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

Ось /etc/sysconfig/networkфайл:

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=server4-245

Я також маю це у файлі Apache httpd.conf:

ServerName localhost

Однак я все-таки отримую перше повідомлення про помилку, коли перезапускаю Apache.


1
Переконайтесь, що ви відредагували право httpd.conf. Зазвичай ServerName xyце просто добре.
KingCrunch

Відповіді:


95

Ваш файл хостів не містить дійсного FQDN, а localhostтакож FQDN. FQDN повинен містити частину імені хоста, а також частину доменного імені. Наприклад, наступним є дійсний FQDN:

host.server4-245.com

Виберіть FQDN і включіть його як у свій /etc/hostsфайл, так і IPv4 та IPv6 адреси, які ви використовуєте (у вашому випадку localhostабо 127.0.0.1), і змініть свою ServerNameконфігурацію в httpd, щоб вона відповідала.

/ і т.д. / хости:

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
Зауважте також, що ви хочете змінити запис HOSTNAME у вашому / etc / sysconfig / мережевому файлі відповідно до обраного імені.
Пол Стенгель

2
Хм. У мене є: 127.0.0.1 localhost gondor gondor.localdomain 192.168.0.3 gondor.localdomain але, схоже, Linux не вважає, що gondor.localdomain також є FQDN. У чому проблема? Чи повинен я мати TLD?
Адам

Привіт, я спробував усе вищесказане, і я все ще отримую ті самі помилки, я не зовсім розумію, чого мені тут не вистачає. Мій FQDN є ak.local.com таким же чином, як і ваша відповідь, але я все одно отримую ті самі питання. Я бігаю на OSX 10.10
AKFourSeven

1
Я виявив, що: 127.0.0.1 myserver myserver.mydom.com ... і т.д. << не працює 127.0.0.1 myserver.mydom.com myserver ... і т.д. << працює
Мартін

208

Якщо у вас немає httpd.confпапки /etc/apache2, ви повинні мати apache2.conf - просто додайте:

ServerName localhost

Потім перезапустіть apache2службу.


2
Прекрасно працював на Ubuntu 12.04 LTS із запуском декількох віртуальних хостів.
Гор

3
Відмінно працював на Mac OS 10.7.5 з кількома віртуальними хостами.
DudeOnRock

1
Працював на Mac OS 10.7.5 під управлінням Virtualbox
iWizard

3
Прекрасно працював на Centos 6.4.
Кел Солаар

7
Працював чудово на Centos 6 (хмарна версія), хоча httpd.conf був у / etc / httpd / conf /
gbarry

64

Після первинної установки сервера Apache я отримав таку помилку під час перезапуску служби Apache на Ubuntu 12.04 (Precision Pangolin)

Рішення дійсно просте. Просто додайте ServerNameдирективу до /etc/apache2/httpd.conf:

sudo nano /etc/apache2/httpd.conf

Додати: ServerName localhost

Нарешті перезапустіть сервер Apache:

sudo /etc/init.d/apache2 restart

1
У межах CentOS 7 шлях буде /etc/httpd/conf/httpd.conf
Дебашис

11

Тож як на це відповіли і прийняли, він все-таки виявився найкращим результатом пошуку, але відповіді, хоча викладені (після безлічі досліджень), дозволили мені чесати голову і копати далі. Ось ось короткий план того, як я вирішив проблему.

Припустимо, що мій сервер myserver.myhome.com, а моя статична IP-адреса - 192.168.1.150:

  1. Відредагуйте файл хостів

    $ 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. Редагувати httpd.conf

    $ sudo nano -w /etc/apache2/httpd.conf
    
    ServerName myserver.myhome.com
    
  3. Редагування мережі

    $ sudo nano -w /etc/sysconfig/network HOSTNAME=myserver.myhome.com
    
  4. Перевірте

    $ hostname
    
    (output) myserver.myhome.com
    
    $ hostname -f
    
    (output) myserver.myhome.com
    
  5. Перезапустіть Apache

    $ sudo /etc/init.d/apache2 restart
    

Здається, різниця включала myserver.myhome.comяк 127.0.0.1, так і статичну IP-адресу 192.168.1.150 у файлі хостів. Те саме на Ubuntu Server та CentOS.


9

У httpd.conf знайдіть "Ім'я сервера". Зазвичай за замовчуванням коментується на Mac. Просто розв’яжіть його та заповніть. Переконайтеся, що у вас / imp / ip combo встановлено в / etc / hosts.


Дякую, це було корисно. httpd не вибирав мій fqdn в / etc / hosts, і моє ім’я хоста здавалося налаштованим належним чином.
Банджер

8

Переконайтеся, що ви редагуєте потрібний httpd.confфайл, тоді помилка щодо ненадійного доменного імені сервера повинна бути знищена (це найпоширеніша помилка).

Щоб знайти httpd.confфайл конфігурації Apache, запустіть:

apachectl -t -D DUMP_INCLUDES

Потім відредагуйте файл і відменте або змінити ServerNameрядок на:

ServerName localhost

Потім перезапустіть Ваш апарат: sudo apachectl restart


1
"Переконайтесь, що ви редагуєте правильний файл htttpd.conf", це допомогло мені на macOS. Я не редагував потрібний http.confфайл. Дякую.
Асме Тільки


3

Вирішити цю помилку можна двома способами:

  1. Include /etc/apache2/httpd.conf

    Додайте вищезазначений рядок у файл /etc/apache2/apache2.conf

  2. Додайте цей рядок в кінці файлу /etc/apache2/apache2.conf :

    ServerName localhost


1

Я вирішував повне кваліфіковане повідомлення про доменне ім’я в різних випадках, додавши своє ім’я хоста до файлу /etc/apache2/httpd.conf і до цього /etc/apache2/apache2.confфайлу.

Введіть hostname -fсвій термінал. Цей запит поверне ваше ім’я хоста.

Потім відредагуйте /etc/apache2/httpd.confфайл (або створіть його, якщо він з якихось причин не існує) та додайте ServerName <your_hostname>.

Крім того, я також зміг усунути повідомлення, додавши ServerName <your_hostname>у /etc/apache2/apache2.confфайл.

Якщо все піде добре, при перезапуску Apache повідомлення не буде.


1

Більшість відповідей пропонують просто додати ServerName localhostдо /etc/apache2/apache2.conf.

Але цитуючи документацію Apache  :

Наявність цього повідомлення про помилку також вказує на те, що Apache httpd не зміг отримати повноцінне ім'я хоста, зробивши зворотний пошук на IP-адресу вашого сервера. Хоча вищезазначені інструкції позбудуться попередження в будь-якому випадку, також непогано зафіксувати роздільну здатність імені, щоб це зворотне відображення працювало.

Тому додавання такого рядка до /etc/hosts, мабуть, більш надійне рішення:

192.0.2.0  foobar.example.com  foobar

де 192.0.2.0 - статична IP-адреса сервера, названого foobarвсередині example.comдомену.

Можна перевірити FQDN, наприклад, за допомогою

hostname -A

(ярлик для hostname --all-fqdn).


1

Виявляється, у мене була ця проблема, і це було тому, що я використовував "вкладки" для відступів рядків замість пробілів. Просто розміщуйте повідомлення, якщо це допоможе комусь.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.