Ошибка Apache & ldquo; Не удалось надежно определить полное доменное имя сервера & rdquo;

Проверьте сначала, там ли Ваши разделы окон.

, Возможно, изменяют некоторые настройки в BIOS?

Или восстановление начальной загрузки использования: https://help.ubuntu.com/community/Boot-Repair

415
задан 07.01.2017, 22:51

13 ответов

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» (без него работать не будет) ).

0
ответ дан 20.04.2019, 13:22
  • 1
    Это также упоминается в документации установки ЛАМПЫ Ubuntu для Apache Поиска и устранения неисправностей. Там они рекомендуют создать файл/etc/apache2/conf.d/fqdn с ServerName localhost в нем – holydragon 29.06.2013, 23:36
  • 2
    Очень хороший ответ - но я также рекомендовал бы поместить его в conf.d каталог:) – Souvik Ray 27.09.2013, 12:42
  • 3
    /etc/apache2/conf.d/ не существует после моей установки lamp-server^ в 14,04 – gstackoverflow 03.05.2014, 21:51
  • 4
    @redanimalwar Для 13,10 и более новый видят @Starx' s ответ ниже. – gstackoverflow 07.05.2014, 21:21
  • 5
    Для самого последнего шага (создающий символьную ссылку в 14,04) I' d рекомендуют sudo a2enconf fqdn, хотя это должно технически быть то же. – Alexey Petrushin 19.06.2014, 05:04

13.10 или новее

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

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

Чтобы решить это сообщение в Apache 2.4, мы должны создать файл конфигурации внутри каталога conf-available. Например, 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

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

0
ответ дан 20.04.2019, 13:22
  • 1
    Делает кто-либо знает, как заставить Apache сказать который файл конфигурации it' s наличие проблемы с? Я don' t знают, почему разработчики никогда не думают для помещения этого в их сообщения об ошибках - едва требуется много кода! – Titian Cernicova-Dragomir 09.07.2014, 00:08
  • 2
    Если у меня есть Интернет fqdm для этого сервера, действительно ли это - место для помещения его? т.е. должен я substitude myhost.org вместо localhost? – J.Ghassen 15.08.2014, 06:54
  • 3
    @CPBL Это будет именем сервера по умолчанию для всех сайтов. Если у Вас только есть один сайт, то that' s все необходимо сделать. Если у Вас будет несколько сайтов на Вашем сервере, необходимо будет также добавить директиву имени сервера для каждого сайта в их соответствующей виртуальной конфигурации хоста. – Dilip Mavireddi 08.10.2014, 07:12
  • 4
    Работы над 14.04 LTS. – Lasse Mikkelsen 29.06.2015, 19:34
  • 5
    Ваша заключенная в кавычки ссылка кажется мертвой, зафиксируйте. – connexo 27.08.2015, 20:56
  • Открыть терминал
  • Открыть файл /etc/apache2/httpd.conf:

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

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

  • Перезагрузите сервер

    sudo service apache2 restart
    

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

0
ответ дан 20.04.2019, 13:22
  • 1
    после выполнения последней команды следующая ошибка происходят ** Перезапуск веб-сервера apache2/usr/sbin/apache2ctl: 87: ulimit: ошибка, устанавливающая предел (Операция, не разрешенная)/usr/sbin/apache2ctl: 87: ulimit: ошибка, устанавливающая предел (Операция, не разрешенная) (13) Разрешение, отклонила: make_sock: не мог связать для обращения 0.0.0.0:80 никакие доступные сокеты слушания, закрывшись Неспособный открыть Действие журналов ' start' неудавшийся. Журнал ошибок Apache может иметь больше информации. [сбой] ** @green7 – Mark.F 15.02.2013, 02:52
  • 2
    попробуйте ' сервис apache2 restart' sudo; – Dorian IL 15.04.2013, 17:09

Apache2 также может получить полное доменное имя из правильно сконфигурированного имени системного хоста, а не жестко закодировано в конфигурационный файл apache. Жесткое кодирование также приведет к путанице в случае изменения имени хоста. На самом деле вам не нужны никакие директивы 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.)

0
ответ дан 20.04.2019, 13:22
  • 1
    +1 для " правильно настроенная система hostname". я хотел настроить сервер правильно. Это также зафиксировало мою ошибку в журнале [warn] RSA server certificate CommonName (CN) <fqdn> does NOT match server name!? – user2698762 16.04.2014, 17:21
  • 2
    Вы думаете, что это должно работать с Apache 2.2.22? Я все еще получаю " не Мог надежно определить server' s полностью определенное доменное имя, с помощью 127.0.1.1 для ServerName" – Aditya Dhanraj Saha 12.04.2015, 18:08
  • 3
    hostname localhost, как предполагается, myubuntuservername localhost? Или строковый литерал hostname localhost? Вы weren' t очищаются в Вашем ответе – user2698762 06.04.2017, 05:25
  • 4
    Это должно быть принятым ответом. Кажется, что Вы, возможно, должны связать FQDN к статическому IP-адресу, а не 127.0.0.1, все же. – Aditya Dhanraj Saha 13.05.2017, 03:25
  • 5
    Это было лучшим ответом для меня на Ubuntu 18.04, мне жаль, что документация не была последовательна, хотя полностью определенное доменное имя не является той же терминологией здесь или нигде. если бы моим полностью определенным доменным именем был google.com, и моим именем сервера был Google, моей записью в/etc/hosts был бы 127.0.0.1 google.com, google I мог заменить localhost строку и рекламу локальный хост до конца этой строки, если я желаю. Я использовал это: digitalocean.com/community/tutorials/… – Dorian IL 17.01.2019, 13:38

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

sudo nano /etc/apache2/apache2.conf

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

ServerName localhost

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

[ 112]

Это сделано.

0
ответ дан 20.04.2019, 13:22

Добавить ServerName localhost

К

 sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf

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

0
ответ дан 20.04.2019, 13:22

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

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

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

ServerName myhost.mycomain.tld

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

0
ответ дан 20.04.2019, 13:22

Указание ServerName localhost в файлах конфигурации вне разделов виртуального хоста - это способ сделать это.

Некоторые другие ответы предлагают изменить /etc/apache2/httpd.conf. Этот файл перезаписывается при обновлении apache с apt. Для конфигурации Apache, которую вы не хотите перезаписывать, вы должны создать новый файл. Вот «способ Debian», чтобы сделать это изменение конфигурации:

# 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

Это в основном то же самое, что и ответ Старка, но в простой для копирования и вставки форме сценария. Первоначально я разместил это в вопросе, который был отмечен как дубликат: https://askubuntu.com/a/432408

0
ответ дан 20.04.2019, 13:22

В Ubuntu 16.04 :

Добавить ServerName localhost в файл httpd.conf, используя следующую команду.

sudo vi  /etc/apache2/httpd.conf

Затем добавьте эту строку Include httpd.conf в конец этого файла

sudo vi /etc/apache2/apache2.conf

Еще раз проверьте синтаксические ошибки

sudo apache2ctl configtest

Теперь вы должны получить

[ 113]

Теперь вы можете корректно перезапустить сервер, перезагрузив конфигурацию

sudo service apache2 reload

или уничтожить процесс и запустить снова

sudo service apache2 restart
0
ответ дан 20.04.2019, 13:22

В Ubuntu 11.10 я увидел это сообщение вместе с зависанием загрузки, происходящей из-за переполнения моего диска. Один из файлов журнала стал мошенническим . Вероятно, на самом деле не было проблемы с Apache, но это сообщение было последней подсказкой перед зависанием загрузки.

Чтобы решить эту проблему, мне пришлось загрузиться в режиме восстановления и удалить своенравный файл журнала.

0
ответ дан 20.04.2019, 13:22

Если вы используете bash и хотите иметь минимальные зависимости (и вам нужна только одна строка для сценария точки входа , если вы используете Docker , как я), эти две опции должны работать.

Если вы хотите localhost:

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

Если вы хотите существующее имя хоста:

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

Это использует [113 ] операторы перенаправления bash , чтобы добавить строку в конец файла. Echo автоматически вставляет новую строку, так что все готово.

0
ответ дан 20.04.2019, 13:22

Выполните следующую команду:

apachectl -t -D DUMP_INCLUDES

, чтобы определить путь к файлу конфигурации httpd.conf, затем отредактируйте этот файл и раскомментируйте / измените строку, в которой указано значение для опции ServerName, например [ 116]

ServerName localhost

Для веб-сервера используйте зарегистрированное имя DNS (например, example.com).

Если у вашего хоста нет зарегистрированного DNS-имени, введите здесь его IP-адрес.

0
ответ дан 20.04.2019, 13:22

В Ubuntu 16.04 :

Добавьте ServerName localhost в файл httpd.conf, используя следующую команду.

sudo vi  /etc/apache2/httpd.conf

Затем добавьте эту строку Include httpd.conf в конец этого файла

sudo vi /etc/apache2/apache2.conf

Еще раз проверьте синтаксические ошибки

sudo apache2ctl configtest

Теперь вы должны получить

[ 113]

Теперь вы можете корректно перезапустить сервер, перезагрузив конфигурацию sudo service apache2 restart

0
ответ дан 20.04.2019, 13:22

Теги

Похожие вопросы