Назад | Перейти на главную страницу

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, У меня пустая страница.

Может ли кто-нибудь заметить, что я делаю неправильно?

По умолчанию Ubuntu не указывает ServerName в конфигурации Apache, потому что он не знает имя вашего сервера. Он пытается выполнить обратный поиск по вашему IP-адресу, который ничего не возвращает, поэтому ему просто нужно использовать IP-адрес в качестве Название сервера.

Чтобы исправить это, либо добавьте директиву 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-адрес localhost внутри /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-адреса localhost и включите сайт перед перезапуском Apache 2.2:

127.0.0.11 *newhost*

Для каждой записи, которую вы хотите включить как файл VirtualHost:

/ и т.д. / apache2 / сайты-доступные /

joe joomla schoo forrest store издатель студии 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 определяется в обоих точках.

Источник: http://linuxconfig.net/manual-howto/error-solution-could-not-reliably-determine-the-servers-fully-qualified-domain-name.html

Вам не хватает записи ServerName на уровне конфигурации сервера. Вам необходимо иметь запись ServerName вне любого хоста, чтобы Apache мог использовать его по умолчанию.

Включение записи ServerName в VirtualHost не решит проблему. Видеть Директива ServerName.

Чтобы исправить это, нам нужно отредактировать /etc/apache2/httpd.conf или /etc/apache2.conf и добавить следующую строку:

ServerName nameofserver

Я считаю, что вам нужно добавить ServerName для виртуального хоста по умолчанию. Поскольку его там нет, он принимает IP-адрес по умолчанию. И это своего рода предупреждение. Думаю, ваш веб-сервер все еще будет работать.

  1. вам нужно добавить 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

Если файл httpd.conf еще не существует в вашем каталоге etc / apache2 после установки, тогда основной файл конфигурации apache, apache2.conf, не будет иметь ссылки на него, поэтому добавление чего-либо в созданный httpd.conf не будет работать что-нибудь. Вместо этого вы можете просто добавить строку «ServerName hostname» в файл apache2.conf.

В / etc / hosts все еще есть эти записи. (Я пропустил некоторые ответы выше)

127.0.0.1 локальный хост 127.0.0.1 testproject.localhost

Оба IP-адреса 127.0.0.1 здесь одинаковы.

Дайте testproject.localhost другой IP-адрес из подсети loopback ip.