
Когда я перезапускаю свой сервер 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
Готово.