Я продолжаю получать это предупреждение, когда (повторно) запускаю 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
определяется в обоих точках.
Вам не хватает записи 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
Если файл 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.