httpd: не удалось надежно определить полное доменное имя сервера, используя 127.0.0.1 для ServerName

151

Я попытался перезапустить мой сервер 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 просто отлично.
Теги:
centos

10 ответов

77
Лучший ответ

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

host.server4-245.com

Выберите полное доменное имя и включите его как в свой /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 / network так, чтобы она соответствовала выбранному вами имени.
  • 2
    Хм. У меня есть: 127.0.0.1 localhost gondor gondor.localdomain 192.168.0.3 gondor.localdomain но, похоже, Linux не считает, что gondor.localdomain также является полным доменным именем. В чем проблема с этим? Должен ли я иметь ДВУ?
Показать ещё 2 комментария
193

Если у вас нет httpd.conf в папке /etc/apache2, вы должны иметь apache2.conf - просто добавьте:

Имя_сервера localhost

Затем перезапустите службу apache2.

  • 2
    Отлично работал на Ubuntu 12.04 LTS, работающей на нескольких виртуальных хостах.
  • 3
    Отлично работал на Mac OS 10.7.5 с несколькими виртуальными хостами.
Показать ещё 10 комментариев
58

После начальной установки сервера Apache я получил следующую ошибку при перезапуске службы Apache на Ubuntu 12.04 (Precise Pangolin)

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

sudo nano /etc/apache2/httpd.conf

Добавить: ServerName localhost

Наконец, перезапустите сервер Apache:

sudo /etc/init.d/apache2 restart
  • 0
    Спасибо, это сработало для меня на CentOS 6
  • 0
    В CentOS 7 путь будет /etc/httpd/conf/httpd.conf
10

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

Предполагая, что мой сервер - myserver.myhome.com, а мой статический IP-адрес - 192.168.1.150:

  • Отредактируйте файл 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
    
  • Изменить httpd.conf

    $ sudo nano -w /etc/apache2/httpd.conf
    
    ServerName myserver.myhome.com
    
  • Изменить сеть

    $ sudo nano -w /etc/sysconfig/network HOSTNAME=myserver.myhome.com
    
  • Проверка

    $ hostname
    
    (output) myserver.myhome.com
    
    $ hostname -f
    
    (output) myserver.myhome.com
    
  • Перезапуск Apache

    $ sudo /etc/init.d/apache2 restart
    

Похоже, что разница включала в себя myserver.myhome.com как 127.0.0.1, так и статический IP-адрес 192.168.1.150 в файле hosts. То же самое на сервере Ubuntu и CentOS.

7

В httpd.conf найдите "ServerName". Он обычно комментируется по умолчанию на Mac. Просто раскомментируйте его и заполните его. Убедитесь, что у вас также есть имя /ip combo, установленное в/etc/hosts.

  • 0
    Спасибо, это было полезно. httpd не собирал мои fqdn в / etc / hosts, и мое имя хоста было настроено правильно.
2

Существует два способа устранения этой ошибки:

  • Include /etc/apache2/httpd.conf

    Добавьте вышеприведенную строку в файл /etc/apache2/apache2.conf

  • Добавьте эту строку в конец файла /etc/apache2/apache2.conf:

    Имя_сервера localhost

2

В файле Apache httpd.conf:

ServerName: 127.0.0.1
0

Убедитесь, что вы редактируете правильный файл httpd.conf, тогда ошибка об ненадежном доменном имени сервера должна исчезнуть (это самая распространенная ошибка).

Чтобы найти конфигурационный файл httpd.conf Apache, запустите:

apachectl -t -D DUMP_INCLUDES

Затем отредактируйте файл и раскомментируйте или измените строку ServerName на:

ServerName localhost

Затем перезапустите apache с помощью: sudo apachectl restart

0

В большинстве ответов предлагается просто добавить 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.

Можно проверить полное доменное имя, например. с

hostname -A

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

0

Я разрешил полное доменное имя в разных случаях, добавив свое имя хоста сервера в файл /etc/apache 2/httpd.conf и в файл /etc/apache2/apache2.conf.

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

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

В качестве альтернативы я также смог удалить сообщение, добавив ServerName <your_hostname> в файл /etc/apache2/apache2.conf.

Если все пойдет хорошо, при перезапуске Apache сообщение исчезнет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню