2009-04-02 9 views
3

Я использую Apache2, и после перезагрузки/перезапуска сервера я получаю это предупреждение:Как Apache определяет полное доменное имя?

apache2: Could not reliably determine the server's fully qualified domain name, using (my FQDN) for ServerName

Все работает отлично, но я пытаюсь выяснить, что вызывает ошибку. Я захватывая источник, чтобы увидеть, если можно найти, но так как мой C не очень хорошо ....

Некоторые примечания:

  • Если изменить имя системы, Apache использует новое имя хоста,
  • I набор ServerName; это так же, как имя хоста
  • У меня есть статический, уникальный IP - dig (hostname) возвращает (мой IP) dig -x (my ip) возвращает (имя хоста)
  • Мой хосты файл правилен

Версии:

 
Apache/2.2.9 
Linux 2.6.24-23-xen x86_64 
Description: Debian GNU/Linux 5.0 (lenny) 

Любые идеи?

ответ

8

У вас есть действующая директива ServerName с соответствующим значением - за пределами любых <VirtualHost> блоков? (Кроме того, необходимо ServerName внутри каждого блока <VirtualHost>, конечно)

Когда Apache выдает сообщение об ошибке, обычно это означает, что она не найти ServerName для сервера в целом. Если у вас есть эта директива установлена ​​правильно, я не могу себе представить, почему Apache все равно будет жаловаться ...

+2

Эй, вы правы - я этого не сделал, и это исправляет. Итак, тогда «надежно определить fqdn» действительно означает «найти по умолчанию/глобальное имя_сервера в моем файле конфигурации»? –

+1

@Peter Stone Apache попытается определить имя сервера с обратным IP-обращением, если вы не настроите его в конфигурации. Если для указанного ip нет записи PTR, то Apache сообщает об этом сообщении об ошибке. – guns

+0

@guns см. Мое оригинальное сообщение - "dig -x (my ip) возвращает (имя хоста)". 'dig -x' возвращает PTR. –

0

Для получения дополнительной информации о настройке имени хоста и доменного имени на Debian (который также предотвращает предупреждение) проверить это: http://movealong.org/hostname.html

1

В Debian имя хоста устанавливается при запуске благодаря сценарию /etc/init.d/hostname.sh, который использует файл/etc/hostname. Мы можем использовать этот файл для обновления имени компьютера и его полного доменного имени (полное доменное имя).

Если ServerName в вашем виртуальный хост мой-computer.my-domain.ext убедитесь, чтобы скопировать точное имя в/и т.д./хосты

Внимание: в/и т.д./файл хостов, имя хоста и Порядок FQDN должен соблюдаться. Сначала fqdn, затем имя хоста и localhost в конце.

~$ echo "my-computer" > /etc/hostname 
~$ echo "127.0.0.1 my-computer.my-domain.ext my-computer localhost" > /etc/hosts 
~$ /etc/init.d/hostname.sh 

Вы можете проверить изменение со следующими линиями:

~$ hostname 
my-computer 
~$ hostname --fqdn 
my-computer.my-domain.ext 

Старое имя хоста может еще присутствовать в командной строке. Просто выйдите из системы, а затем войдите, чтобы он исчез.