13.04 и старше

13.04 и старше

Когда я перезапускаю свой сервер 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? Что вызывает эту ошибку?

решение1

13.04 и старше

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

Если вы пойдете по адресу:

/etc/apache2/apache2.conf

и вставьте:

ServerName localhost   

а затем перезапустите Apache, введя в терминал:

sudo systemctl reload apache2

уведомление исчезнет.

Если у вас есть имя внутри, /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" (без него работать не будет).

решение2

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

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

решение3

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

решение4

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

sudo nano /etc/apache2/apache2.conf

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

ServerName localhost

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

sudo service apache2 restart

Готово.

Связанный контент