
Я постоянно получаю это предупреждение при (пере)запуске Apache.
* 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
[ OK ]
Вот содержимое моего etc/hosts
файла:
#127.0.0.1 hpdtp-ubuntu910
#testproject.localhost localhost.localdomain localhost
#127.0.1.1 hpdtp-ubuntu910
127.0.0.1 localhost
127.0.0.1 testproject.localhost
127.0.1.1 hpdtp-ubuntu910
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Вот содержимое моего /etc/apache2/sites-enabled/000-default
файла:
<VirtualHost *:80>
ServerName testproject.localhost
DocumentRoot "/home/morpheous/work/websites/testproject/web"
DirectoryIndex index.php
<Directory "/home/morpheous/work/websites/testproject/web">
AllowOverride All
Allow from All
</Directory>
Alias /sf /lib/vendor/symfony/symfony-1.3.2/data/web/sf
<Directory "/lib/vendor/symfony/symfony-1.3.2/data/web/sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
Когда я захожу на сайт http://testproject.localhost
, я вижу пустую страницу.
Может ли кто-нибудь заметить, что я делаю не так?
решение1
По умолчанию Ubuntu не указывает ServerName в конфигурации Apache, потому что он не знает имени вашего сервера. Он пытается выполнить обратный поиск по вашему IP-адресу, который ничего не возвращает, поэтому он просто должен использовать IP-адрес в качествеИмя сервера.
Чтобы исправить это, добавьте директиву ServerNameвне любого виртуального хоста- например, в /etc/apache2/httpd.conf
, или настроить обратный ответ DNS для вашего основного IP-адреса - в данном случае 127.0.1.1
Вполне нормально также игнорировать это.
решение2
Вот быстрое решение:
echo ServerName $HOSTNAME > /etc/apache2/conf.d/fqdn
решение3
Другой способ обойти это предупреждение — поместить полное доменное имя в 127.0.1.1
строку /etc/hosts
. Это даже не обязательно должно быть полное доменное имя, которое будет фактически разрешаться во что-либо на сервере DNS.
127.0.1.1 hpdtp-ubuntu910.lan hpdtp-ubuntu910
сработает, а также сохранит поведение любых программ, которые не ожидают дополнительных .lan
. Порядок важен; имена с большим количеством уровней должны быть указаны первыми, как в этом примере, где адрес .lan
идет перед другим адресом.
решение4
Настройка ServerName
в httpd.conf у меня не сработала. Я исправил это, установив ServerName 127.0.0.1
в /etc/apache2/conf.d/name
.
Я использую Ubuntu 12.10 Alpha3 и определил ServerName
оба места.