Вопрос: Ошибка Apache «Не удалось достоверно определить полное доменное имя сервера»


Когда я перезапускаю сервер Apache с помощью команды

sudo /etc/init.d/apache2 restart

Я получаю следующую ошибку:

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

Используется ли сервер 127.0.1.1 вместо 127.0.0.1? Что вызывает эту ошибку?


384
2018-02-14 13:09


Источник




Ответы:


13.04 и старше

Это просто дружеское предупреждение и не проблема (как в том, что что-то не работает).

Если вы вставляете

ServerName localhost   

в любом httpd.conf или apache2.conf в /etc/apache2 и перезапустите apache, уведомление исчезнет.

Если у вас есть имя внутри /etc/hostname вы также можете использовать это имя вместо localhost,


И он использует 127.0.1.1 если он находится внутри вашего /etc/hosts:

127.0.0.1 localhost
127.0.1.1 myhostname

Предпочтительный метод

Устранение неполадок Apache

Если вы получите эту ошибку:

apache2: Could not determine the server's fully qualified domain name, 
using 127.0.0.1 for ServerName

затем используйте текстовый редактор, такой как «sudo nano» в командной строке или «gksudo gedit» на рабочем столе, чтобы создать новый файл,

sudo nano /etc/apache2/conf.d/fqdn

или

gksu "gedit /etc/apache2/conf.d/fqdn"

затем добавьте

ServerName localhost

в файл и сохранить. Все это можно выполнить в одной команде со следующим:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

Но на Ubuntu 14.04:

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

Не забудьте «.conf» (без работы не будет).


469
2018-02-14 13:18



Это также упоминается в документации Ubuntu LAMP для Устранение неполадок Apache, Там они рекомендуют создать файл /etc/apache2/conf.d/fqdn с ServerName localhost в этом - icc97
Очень хороший ответ - но я бы также рекомендовал поместить его в каталог conf.d :) - cwd
/etc/apache2/conf.d/ не существует после моей установки lamp-server^ в 14.04 - redanimalwar
@redanimalwar Для 13.10 и новее см. @ Ответ Starx ниже. - Dan
На последнем этапе (создание sym-link в 14.04) я бы рекомендовал sudo a2enconf fqdn хотя он должен быть технически одинаковым. - yoshi


13.10 или новее

Начиная с версии Apache 2.4, доступной по умолчанию с 13.10, вы не можете использовать метод добавления файла конфигурации в conf.d каталог.

Apache больше не использует conf.d каталог. Все конфигурационные файлы хранятся внутри /etc/apache2/conf-available и все файлы конфигурации должны теперь иметь .conf расширение.

Чтобы решить это сообщение в Apache 2.4, мы должны создать файл конфигурации внутри conf-доступного каталога. Например servername.conf,

sudo vi /etc/apache2/conf-available/servername.conf

И внутри этого нам просто нужно добавить одну строку

ServerName localhost

Вы можете комбинировать предыдущие две команды в одном:

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

Если вы хотите использовать доменное имя или любое другое имя в зависимости от требования, его штраф, просто замените localhost с тем, что вам нужно. Затем вы должны включить эту конфигурацию. Для этого вам нужно запустить следующую команду:

sudo a2enconf servername

a2enconf является командой для включения файла конфигурации в Apache 2.4. Также отметим, что servername в приведенной выше команде указывается имя файла конфигурации servername.conf, Если ваш файл конфигурации был ngenericserver.conf то вам придется писать sudo a2enconf ngenericserver,

После этого перезагрузите сервер, и вышеуказанное сообщение больше не будет вас обманывать.

sudo service apache2 reload

или

sudo apache2ctl graceful

Теперь после этого вы увидите, что сообщение больше не будет отображаться, и проблема будет исправлена.


156
2017-12-26 18:45



Кто-нибудь знает, как заставить Apache сказать который с файлом конфигурации, с которым проблема связана? Я не знаю, почему разработчики никогда не думают помещать это в свои сообщения об ошибках - это вряд ли займет много кода! - John Y
Если у меня есть интернет-fqdm для этого сервера, это место для его размещения? т.е. должен ли я подставлять myhost.org вместо localhost? - CPBL
@CPBL Это будет имя сервера по умолчанию для всех сайтов. Если у вас есть только один сайт, то это все, что вам нужно сделать. Если на вашем сервере имеется несколько сайтов, вам также необходимо будет добавить директиву servername для каждого сайта в их соответствующей конфигурации виртуального хоста. - Dan
Работает на 14.04 LTS. - Parto
Ваша цитированная ссылка кажется мертвой, пожалуйста, исправьте. - Fredrick Gauss


  • Открыть терминал
  • Открой /etc/apache2/httpd.conf файл:

    sudo editor /etc/apache2/httpd.conf # [1]
    
  • По умолчанию он будет пустым. Просто добавьте следующую строку:

    ServerName localhost
    
  • Сохраните файл и выйдите

  • Перезапустить сервер

    sudo service apache2 restart
    

[1] Запустите редактор по умолчанию, см. sudo update-alternatives --config editor


24
2018-02-14 13:17



после выполнения последней команды происходит следующая ошибка: ** Перезапуск веб-сервера apache2 / usr / sbin / apache2ctl: 87: ulimit: ограничение на установку ошибок (операция не разрешена) / usr / sbin / apache2ctl: 87: ulimit: ограничение на установку ошибок (операция not разрешено) (13) Разрешено: make_sock: не удалось привязать к адресу 0.0.0.0:80 нет доступных сокетов для прослушивания, завершение работы Не удалось открыть журналы Действие «start» не удалось. В журнале ошибок Apache может быть больше информации. [fail] ** @ green7 - Deepu
попробуйте 'sudo service apache2 restart' - waterloo2005


Apache2 также может получить полное доменное имя из правильно настроенного имени системного хоста, а не жестко закодированного в конфигурационный файл apache. Hardcoding также вызывает путаницу при изменении имени хоста. Вам действительно не нужно ServerName директив в httpd.conf или любые файлы конфигурации apache.

Поставьте следующее в /etc/hosts:

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

где hostname.domainname.com является полным доменом вашего устройства.

Наряду с правильно настроенным именем хоста в /etc/hostname/ или с hostnamectl, это также поможет другим службам на вашем компьютере работать должным образом (т. е. приглашение для входа, показывающее This is hostname.domainname.com вместо This is hostname.unknown_domain.)


22
2017-09-18 18:05



+1 для «правильно настроенного имени системного компьютера». Я хотел настроить сервер должным образом. Это также зафиксировало мою ошибку в журнале [warn] RSA server certificate CommonName (CN) <fqdn> does NOT match server name!? - transistor1
Считаете ли вы, что это должно работать с Apache 2.2.22? Я все еще получаю «Не могу надежно определить полное доменное имя сервера, используя 127.0.1.1 для ServerName» - David Winiecki
Является hostname localhost должно быть myubuntuservername localhost? Или строковый литерал hostname localhost? Вы не поняли в своем ответе - Jonathan
Это должен быть принятый ответ. Кажется, вам может потребоваться связать FQDN с статическим IP-адресом, а не с 127.0.0.1, хоть. - Skippy le Grand Gourou


В новой версии apache2 вы просто следуете команде следующим образом:

sudo nano /etc/apache2/apache2.conf

Добавьте следующий новый конец строки:

ServerName localhost

Затем перезапустите apache2:

sudo service apache2 restart

Готово.


15
2018-04-16 06:38





Я считаю, что немного лучше создать новый файл в /etc/conf.d что для изменения apache2.conf или httpd.conf,

Это личное предпочтение, которое сохраняет мои изменения конфигурации отдельно от дистрибутива. Поэтому обновления менее сложны.

Я создаю файл /etc/apache2/conf.d/AAserverName и он содержит только:

ServerName myhost.mycomain.tld

Другие предложения, безусловно, также работают.


4
2017-09-06 15:31





В Ubuntu 16.04:

sudo -i

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

2
2018-04-17 13:26





Добавить ServerName localhost

к

 sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf

Это не ошибка. Это просто напоминание друга.


1
2017-07-05 09:36