Apache Linux

Apache: AH00558 — could not reliably determine the server's FQDN

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Предупреждение AH00558 об определении FQDN сервера не мешает работе Apache, но его можно убрать директивой ServerName в основном конфиге и записью в hosts. Укажите имя сервера глобально и проверьте конфигурацию.

В этой статье
  1. Что это за сообщение
  2. Типичные причины
  3. Как исправить
  4. Проверка результата
  5. Почему важно не только заглушить сообщение
AH00558
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
По-русскиApache не смог определить имя сервера.

#Что это за сообщение

AH00558 — предупреждение, а не ошибка. Apache при запуске пытается определить полное имя хоста и, если не получилось, использует 127.0.1.1 или другой адрес. Сайты продолжают работать, но сообщение появляется при каждом configtest, reload и restart, засоряя вывод. Оно возникает, когда не задан глобальный ServerName, имя хоста в /etc/hostname и /etc/hosts не соответствует или не разрешается.

#Типичные причины

Возможная причинаКак узнатьЧто делать
Не задан глобальный ServerNameНет директивы.Предупреждение при запуске.Добавьте ServerName.
Имя хоста не разрешаетсяНет записи в hosts.hostname -f пустой.Добавьте запись.
Короткое имя вместо FQDNmyserver вместо example.ru.Используется 127.0.1.1.Задайте полное имя.
Файл конфигурации не подключёнЗабыли a2enconf.Директива не действует.Включите файл.
Несколько Apache на машинеРазные конфигурации.Правили не тот.Найдите нужный файл через apachectl -V.
Опечатка в директивеСинтаксис.configtest показывает ошибку.Исправьте.

#Как исправить

  1. Узнайте имя хоста сервераНа сервере с Apache откройте терминал и выполните hostnamectl и hostname -f. Запишите, какое имя вы собираетесь использовать для идентификации самого веб-сервера; оно может быть localhost при локальной разработке, либо полное имя сервера. Предупреждение AH00558 само по себе не означает, что сайты недоступны.
  2. Добавьте директиву ServerName в основной конфигурационный файлНа Debian/Ubuntu создайте отдельный файл конфигурации Apache для глобального ServerName, например /etc/apache2/conf-available/servername.conf, с единственной строкой ServerName example.ru после подстановки реального имени. Сначала проверьте, что такой файл ещё не подключён и нет другой глобальной директивы; на RHEL путь конфигурации и способ подключения иные.
  3. Убедитесь, что имя хоста разрешается через /etc/hostsЕсли hostname -f не возвращает ожидаемое имя, проверьте DNS и содержимое /etc/hosts, но не добавляйте к реальному внешнему IP выдуманное соответствие. Для устранения AH00558 достаточно корректного глобального ServerName; изменение системного hostname не требуется и может повлиять на почту, журналы и другие службы.
  4. Проверьте синтаксис и перезагрузите конфигурациюНа Debian выполните sudo a2enconf servername, затем sudo apache2ctl configtest и при Syntax OK — sudo systemctl reload apache2. На других системах используйте apachectl configtest и имя службы httpd; не смешивайте пути и команды двух дистрибутивов.
  5. Проверьте, что сообщение исчезлоПовторите apachectl -S или apache2ctl -S и проверьте, что предупреждение AH00558 исчезло, при этом список виртуальных хостов сохранился. Откройте сайт по обычному имени: глобальный ServerName не заменяет отдельные ServerName каждого виртуального хоста.
  6. Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
    Выберите подходящий вариант — это не команды для последовательного выполнения
    Вариант 1Имя хоста и FQDN
    Linux · Терминал (Bash)Команда
    Имя хоста и FQDN
    hostname
    hostname -f
    cat /etc/hosts
    Вариант 2Глобальный ServerName (Debian/Ubuntu)
    ТекстКоманда
    Глобальный ServerName (Debian/Ubuntu)
    ServerName example.ru
    Вариант 3Включить файл и перезагрузить (Debian/Ubuntu)
    Linux · Терминал (Bash)КомандаНужен sudo
    Включить файл и перезагрузить (Debian/Ubuntu)
    sudo a2enconf servername
    sudo apache2ctl configtest
    sudo systemctl reload apache2
    Вариант 4Для RHEL/CentOS — добавьте в httpd.conf
    ТекстКоманда
    Для RHEL/CentOS — добавьте в httpd.conf
    ServerName example.ru:80
    Вариант 5Привязка имени к адресу в /etc/hosts
    ТекстКоманда
    Привязка имени к адресу в /etc/hosts
    127.0.0.1 localhost
    # Файл /etc/hosts изменяйте лишь при подтверждённой неисправности локального разрешения имени.
    Вариант 6Установить имя хоста (если оно не задано)
    Linux · Терминал (Bash)Команда
    Установить имя хоста (если оно не задано)
    hostnamectl status
    # Менять системное имя сервера для устранения AH00558 обычно не требуется.

#Проверка результата

Выполните sudo apache2ctl configtest: вместо предупреждения должно появиться Syntax OK. Если сообщение осталось, найдите другой ServerName без значения или файл, подключённый позже основного. Команда grep -R "ServerName" /etc/apache2/ покажет все определения, чтобы убрать дублирование и конфликты.

#Почему важно не только заглушить сообщение

Корректное имя сервера влияет на редиректы: когда запрос приходит без заголовка Host или к неизвестному имени, Apache формирует адрес для перенаправления на основе ServerName. Если там остался 127.0.1.1, при добавлении слэша к каталогу посетитель может быть направлен на внутренний адрес. Для проверки выполните curl -I http://IP-сервера/каталог и посмотрите заголовок Location: в нём должно быть реальное имя, а не локальный IP. Если вы управляете несколькими сайтами, глобальное имя можно указать нейтральное (имя самого сервера), а у каждого виртуального хоста задать собственное.

Для серверов без домена допустимо ServerName localhost: сообщение исчезнет, а работа сайтов не изменится.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.