apache2: не удалось надежно определить полное доменное имя сервера, используя 127.0.1.1 для ServerName
Я продолжаю получать это предупреждение, когда я (пере) запускаю 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
Я получаю пустую страницу.
Кто-нибудь может определить, что я делаю не так?
11 ответов
По умолчанию Ubuntu не указывает ServerName в конфигурации Apache, потому что он не знает, как называется ваш сервер. Он пытается выполнить обратный поиск вашего IP-адреса, который ничего не возвращает, поэтому ему просто нужно использовать IP-адрес в качестве ServerName.
Чтобы это исправить, либо добавьте директиву ServerName вне любого виртуального хоста - например, в /etc/apache2/httpd.conf
или настройте обратный ответ DNS для вашего основного IP-адреса - в данном случае, 127.0.1.1
Это также прекрасно, игнорировать это тоже.
Вот быстрое решение:
echo ServerName $HOSTNAME > /etc/apache2/conf.d/fqdn
Другой способ обойти это предупреждение - поместить полное доменное имя на 127.0.1.1
линия /etc/hosts
, Это даже не должно быть fqdn, которое фактически разрешает что-либо на DNS-сервере.
127.0.1.1 hpdtp-ubuntu910.lan hpdtp-ubuntu910
будет делать свое дело, сохраняя при этом поведение любых программ, которые не ожидают дополнительного .lan
, Порядок важен; имена с большим количеством уровней должны быть указаны первыми, как в этом примере, где .lan
адрес предшествует другому адресу.
Это решение работает для моих нужд разработки:
Фон:
Debian Linux Sid:
Разработка VirtualHost: у меня есть 10 имен серверов (доступно 10 записей на виртуальных хостах внутри сайтов)
Я назначил каждому уникальный локальный IP-адрес внутри /etc/hosts
:
127.0.0.1 joe localhost.localdomain localhost
127.0.1.1 joe
127.0.1.2 joomla
127.0.1.3 schmoo
127.0.1.4 forrest
127.0.1.5 store
127.0.1.6 publisher
127.0.1.7 studios
127.0.1.8 drupal
127.0.1.9 graphics
127.0.1.10 wordpress
...
The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Если вы собираетесь добавить еще один виртуальный хост (у меня их немало для разработки), добавьте запись в другой IP-адрес локального хоста и включите сайт перед перезапуском Apache 2.2:
127.0.0.11 *newhost*
Для каждой записи, которую вы хотите включить в качестве файла VirtualHost:
/ и т.д. /apache2/ сайты-доступны /
Джо Джумла Скоу Форрест магазин издательство студии Drupal графика WordPress
Все виртуальные хосты включены / отключены через имя хоста a2ensite/a2dissite
Подавить ошибку
Перезапуск веб-сервера: apache2apache2: не удалось надежно определить полное доменное имя сервера, используя 127.0.0.1 для ServerName ... ожидание apache2: не удалось надежно определить полное доменное имя сервера, используя 127.0.0.1 для ServerName''
отредактируйте httpd.conf в /etc/apache2/httpd.conf
[пустой файл в Debian]:
ServerName 127.0.1.1
Затем поиск разрешается для всех имен, которые вы добавляете, комментируете или отключаете в дальнейшем.
В случае, если вы забыли: единственная запись VirtualHost *:80 должна находиться только в файле ports.conf,
/etc/apache2/ports.conf
**NameVirtualHost *:80**
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
В вашей записи VirtualHost пропустите VirtualHost *:80
Пример: виртуальный хост Джо
<VirtualHost *:80>
**ServerAlias joe**
**...**
</VirtualHost>
Настройка ServerName
в httpd.conf у меня не сработало. Я исправил это, установив ServerName 127.0.0.1
в /etc/apache2/conf.d/name
,
Я использую Ubuntu 12.10 Alpha3 и имею ServerName
определяется в обоих местах.
Вам не хватает записи ServerName уровня конфигурации сервера. Вам нужно иметь запись ServerName вне любого хоста, чтобы Apache использовал ее по умолчанию.
Помещение записи ServerName в VirtualHost не решит проблему. Смотрите директиву ServerName.
Чтобы это исправить, нам нужно отредактировать /etc/apache2/httpd.conf или /etc/apache2.conf и добавить следующую строку:
ServerName nameofserver
Я считаю, что вам нужно добавить ServerName
для виртуального хоста по умолчанию. Так как его там нет, он принимает IP-адрес по умолчанию. И это своего рода предупреждение. Ваш веб-сервер все еще будет функционировать, я думаю.
Вы должны добавить ServerName в ваш файл httpd.conf, выполнив следующие шаги
sudo gedit /etc/apache2/httpd.conf
По умолчанию
httpd.conf
файл будет пустым. Теперь просто добавьте следующую строку в файл.ServerName localhost
Сохраните файл и выйдите из
gedit
, Наконец перезапустите сервер.sudo /etc/init.d/apache2 restart
2) Добавить Include httpd.conf
в конце apache2.conf
В /etc/hosts все еще есть эти записи. (Я пропустил некоторые ответы выше)
127.0.0.1 localhost 127.0.0.1 testproject.localhost
Оба IP-адреса 127.0.0.1 здесь одинаковы.
Присвойте IP-адресу testproject.localhost другой IP-адрес из петлевой подсети.
Если файл httpd.conf после установки еще не существует в каталоге etc/apache2, то основной файл конфигурации apache, apache2.conf, не будет ссылаться на него, поэтому добавление чего-либо в созданный httpd.conf не поможет что-нибудь. Вместо этого вы можете просто добавить строку "Имя хоста ServerName" в файл apache2.conf.