Вопрос: 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, Я получаю пустую страницу.

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


72
2018-01-16 19:24


Источник




Ответы:


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

Чтобы исправить это, добавьте директиву ServerName вне любого виртуального хоста - например. в /etc/apache2/httpd.conf, или настроить обратный DNS-ответ для вашего основного IP-адреса - в этом случае 127.0.1.1

Это также прекрасно, чтобы игнорировать его.


53
2018-01-16 21:37



Это противоречит интуиции. Если я добавлю имя_сервера за пределами любых виртуальных хостов - как я могу обслуживать несколько виртуальных хостов с одного сервера Apache? (это afterall, является точкой именованных виртуальных серверов) - UNLESS, вы говорите, что я могу иметь более одной записи ServerName в (скажем) /etc/apache2/httpd.conf - user35402
Затем вы можете добавить ServerName / ServerAlias ​​внутри блоков VirtualHost, чтобы VirtualNost соответствовал именам хостов, которые вы хотите. Читать httpd.apache.org/docs/2.2/mod/core.html#servername для низкого уровня. - crb
Я искал этот ответ более часа. Так много дерьма в интернете по этому поводу, но это устранило мою проблему. Спасибо - Mike
@Mike вы и другие гениальны! Я ищу этот ответ для четыре дней. (Хорошо, не полностью рабочие дни.). +1, потому что это первый ответ, который объясняет, что я могу добавить директиву ServerName вне виртуальных хостов, не затрагивая их. Имея это в виду, решение ReinoutS работало для меня (+1 к нему тоже). - Sony Santos


Вот быстрое решение:

echo ServerName $HOSTNAME > /etc/apache2/conf.d/fqdn

27
2018-03-15 16:25



Благодарю. Ни одно исправление, использующее / etc / hosts или httpd.conf, не работало для меня, но это было сделано. - Ryan
Отлично, спасибо! - James
Исправлено это на Ubuntu 13.04, запущенном apache2, спасибо! - dmanexe
Отлично работает на нынешнем Debian Wheezy :) спасибо - DominikAngerer


Еще один способ этого предупреждения - разместить полное доменное имя на 127.0.1.1 линия /etc/hosts, Он даже не должен быть fqdn, который фактически разрешил бы что-либо на сервере DNS.

127.0.1.1  hpdtp-ubuntu910.lan  hpdtp-ubuntu910

будет делать трюк, а также сохраняет поведение любых программ, которые не ожидают дополнительных .lan, Порядок важен; сначала следует указать имена с большим количеством уровней, как в этом примере, где .lan адрес поступает до другого адреса.


16
2018-03-03 04:45





Это решение работает для моих потребностей в развитии:

Задний план:

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-адрес 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: Не удалось достоверно определить полный домен сервера   name, используя 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 joe

<VirtualHost *:80>
    **ServerAlias joe**
    **...**
</VirtualHost>

7
2018-02-15 11:43





настройка 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


6
2017-09-08 21:05



Круто, это сработало и для меня тоже. - Priyank Bolia


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

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


5
2018-01-16 21:36





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

ServerName nameofserver

3
2018-01-08 10:24



Ты прав! Но этот ответ дублирует содержание ответа crb, не предоставляя никакой новой информации или проницательности. Я бы подумал об удалении или добавлении более подробной информации, отличной от ответов других людей. - Royce Williams
это заставило меня идти, спасибо! - Drewdin


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


1
2018-01-16 20:21



Я не понимаю ваш комментарий. У меня уже есть имя_сервера в моем файле: <VirtualHost 127.0.0.1:8080> ServerName mysite.localhost Не могли бы вы прояснить свой комментарий?
Для -default-virtualhost, а не только для определенного виртуального хоста. - Kzqai


  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


0
2017-08-06 12:07





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


-1
2018-01-23 02:32