MyTetra Share
Делитесь знаниями!
Ошибка конфигурации Apache
Время создания: 25.12.2020 23:26
Автор: alensav
Текстовые метки: Ошибка конфигурации Apache AH00558
Раздел: MyTetra - Ubuntu_Command
Запись: alensav/MyTetra2/main/base/1608928016qtnjuwkkwt/text.html на raw.githubusercontent.com

Распространенные ошибки Apache

Руководство

Ошибка конфигурации Apache AH00558: не удалось надежно определить полное доменное имя сервера Apache

  • По Хамон Camisso Опубликовано 6 августа 2020 г. 57,3 км Просмотры

Часть серии: Общие ошибки Apache

В этой серии руководств объясняется, как устранять неполадки и исправлять некоторые из наиболее распространенных ошибок, с которыми вы можете столкнуться при использовании веб-сервера Apache .

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

Введение

AH00558: Could not reliably determine the server's fully qualified domain nameСообщение Apache создается, когда Apache не настроен с помощью глобальной ServerNameдирективы. Сообщение предназначено в основном для информационных целей, и ошибка AH00558 не помешает правильной работе Apache.

В этом руководстве вы узнаете, как обнаружить сообщение AH00558, используя методы, описанные в руководстве « Как устранить распространенные ошибки Apache» в начале этой серии. Вы также узнаете, как установить ServerNameдирективу для разрешения сообщения.

Если вы уже определили, что на ваш сервер Apache влияет сообщение AH00558, и вы хотите пропустить шаги по устранению неполадок, шаг « Установка глобальной ServerName директивы» в конце этого руководства объясняет, как устранить это сообщение.

Устранение неполадок с использованием systemctl

Первый шаг при устранении неполадок с AH00558: Could not reliably determine the server's fully qualified domain nameсообщением - проверка статуса Apache с помощью systemctl. Вывод команды systemctlwill во многих случаях содержит всю информацию, необходимую для разрешения сообщения.

В дистрибутивах Linux, производных от Ubuntu и Debian, выполните следующее, чтобы проверить статус Apache:

Системы Ubuntu и Debian

  • sudo systemctl status apache2.service -l --no-pager 

В системах CentOS Fedora и системах, производных от RedHat, используйте эту команду для проверки статуса Apache:

Системы CentOS и Fedora

  • sudo systemctl status httpd.service -l --no-pager 

-lФлаг будет гарантировать , что systemctlвыводит все содержимое строки, вместо того , подставив в (эллипсов ) для длинных линий. --no-pagerВыходной флаг будет весь журнал на экран , не прибегая к такому инструменту , как , lessчто только показывает экран контента одновременно.

Вы должны получить вывод, подобный следующему:

Output● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Wed 2020-07-29 14:30:03 UTC; 33min ago
  Process: 34 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 46 (apache2)
    Tasks: 55 (limit: 2344)
   CGroup: /system.slice/apache2.service
           ├─46 /usr/sbin/apache2 -k start
           ├─47 /usr/sbin/apache2 -k start
           └─48 /usr/sbin/apache2 -k start

Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Starting The Apache HTTP Server...
Jul 29 14:30:03 68e2cf19f3f1 apachectl[34]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Started The Apache HTTP Server.

Выделенная строка, содержащая сообщение AH00558, является важной. По сути, он сообщает вам, что Apache не смог найти действительную ServerNameдирективу в своем файле конфигурации, поэтому он будет использовать первый обнаруженный IP-адрес. В этом примере, это публичный IP - адрес сервера: 172.17.02. Если вы устраняете неполадки сообщения AH00558, обнаруженный IP-адрес может быть другим или это может быть DNS-имя, читаемое человеком.

Если ваши systemctlвыходные данные содержат автоматически определяемое значение любого IP-адреса или имени хоста, перейдите к последнему разделу этого руководства, « Установка глобальной ServerName директивы», чтобы решить проблему. В этом разделе вы настроите Apache с безопасным по умолчанию ServerNameзначения , используя IP - адрес localhost: 127.0.0.1.

Если в ваших systemctlвыходных данных не указано значение, которое можно использовать для ServerNameдирективы, в следующем разделе этого руководства объясняется, как исследовать systemdжурналы, используя их journalctlдля поиска сообщения AH00558.

Устранение неполадок с использованием journalctl

Чтобы просмотреть systemdжурналы Apache, вы воспользуетесь journalctlкомандой. При вызове journalctlесть два особых флага, которые помогут вам найти определенные сообщения, если имеется большой объем записей журнала.

Первый флаг, который вы добавите к journalctlвызову, - это --since todayфлаг. Это ограничит вывод команды только записями журнала, начинающимися с 00:00:00 текущего дня. Использование этой опции поможет ограничить объем записей журнала, которые вам необходимо изучить при проверке ошибок.

Второй флаг, который вы будете использовать, - это тот же --no-pagerпараметр, что и вы использовали, при systemctlкотором весь журнал сразу выводится на ваш экран.

В системах, производных от Ubuntu и Debian, выполните следующую команду:

  • sudo journalctl -u apache2.service --since today --no-pager 

В системах, основанных на CentOS, Fedora и RedHat, используйте эту команду для проверки журналов:

  • sudo journalctl -u httpd.service --since today --no-pager 

Если ваш сервер Apache генерирует сообщение AH00558, просмотрите journalctlвывод команды и найдите такие строки:

Output-- Logs begin at Wed 2020-07-29 14:30:02 UTC, end at Wed 2020-07-29 14:45:03 UTC. --
. . .
Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Starting The Apache HTTP Server...
Jul 29 14:30:03 68e2cf19f3f1 apachectl[34]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Started The Apache HTTP Server.

Вторая строка вывода - это сообщение AH00558. Строка включает публичный IP-адрес сервера, который Apache автоматически обнаруживает и устанавливает по умолчанию во время выполнения. Получив это сообщение как подтверждение ошибки AH00558, вы можете перейти к настройке глобальной ServerName директивы для решения проблемы.

В противном случае в следующем разделе объясняется, как диагностировать сообщение об ошибке AH00558 с помощью apachectlкоманды.

Устранение неполадок с использованием apachectl

AH00558: Could not reliably determine the server's fully qualified domain nameОшибка может быть обнаружена с помощью сервера Apache apachectlполезности. С apachectlего помощью вы можете перехватывать подобные сообщения перед перезагрузкой или перезапуском Apache, и вам не нужно искать systemctlи journalctlрегистрировать ошибки для поиска ошибок.

Чтобы проверить конфигурацию Apache на наличие сообщения AH00558, выполните следующую команду:

  • sudo apachectl configtest 

Вы должны получить следующий вывод, если на вашем сервере появляется сообщение об ошибке AH00558:

OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Как и в предыдущих разделах этого руководства, в которых использовалось systemctlи journalctlдля поиска сообщений AH00558, важна строка, содержащая сообщение AH00558, выделенная в предыдущем примере. Еще раз обратите внимание, что IP-адрес 172.17.0.2в этом примере может быть другим на вашем сервере.

В следующем разделе этого руководства объясняется, как установить ServerNameдирективу для разрешения сообщений об ошибках AH00558.

Установка глобальной ServerNameдирективы

Чтобы устранить AH00558: Could not reliably determine the server's fully qualified domain nameсообщение об ошибке, вам необходимо добавить ServerNameдирективу в конфигурацию Apache. Apache использует ServerNameдирективу для сопоставления входящих HTTP-запросов с IP-адресом или именем хоста DNS с помощью VirtualHost директив , чтобы обрабатывать запросы для нескольких сайтов с использованием одного сервера.

В сообщении об ошибке отмечается, что также ServerNameдолжна быть установлена глобальная директива. Это гарантирует, что Apache сможет корректно обрабатывать входящие запросы, которые не отображаются в a, VirtualHostбез дополнительных ошибок.

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

On Ubuntu and Debian-derived systems, open the /etc/apache2/apache2.conf file with root privileges using nano or your preferred text editor:

  • sudo nano /etc/apache2/apache2.conf 

Add a line containing ServerName 127.0.0.1 to the end of the file:

/etc/apache2/apache2.conf

. . .
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
ServerName 127.0.0.1 

On CentOS, Fedora, and RedHat-derived systems, open the /etc/httpd/conf/httpd.conf file with root privileges using nano or your preferred text editor:

  • sudo nano /etc/httpd/conf/httpd.conf 

Add the ServerName 127.0.0.1 line to the end of the file:

/etc/httpd/conf/httpd.conf

. . .
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
ServerName 127.0.0.1 

Save and close the file when you are finished. If you used nano, do so by pressing CTRL + X, Y, and then ENTER.

Once you have added the ServerName directive to your configuration, run apachectl to test that the configuration is valid.

  • sudo apachectl configtest 

A successful apachectl configtest invocation should result in output like this:

OutputSyntax OK

Теперь вы можете перезапустить Apache, используя соответствующую systemctl restartкоманду для вашего дистрибутива Linux.

В системах, производных от Ubuntu и Debian, запустите следующее:

  • sudo systemctl restart apache2.service 

В системах, основанных на CentOS, Fedora и RedHat, используйте эту команду для перезапуска Apache:

  • sudo systemctl restart httpd.service 

После перезапуска Apache сообщение об ошибке AH00558 больше не будет отображаться в ваших журналах. Вы можете подтвердить сообщения замалчиваются, запустив любой из трех systemctl, journalctlилиapachectl команды , которые демонстрируются в этом учебнике.

Заключение

В этом руководстве вы узнали о AH00558: Could not reliably determine the server's fully qualified domain nameсообщениях об ошибках. Хотя эти сообщения не препятствуют запуску Apache, их можно разрешить, установив глобальныйServerName директиву.

Вы узнали , как искать сообщения об ошибках AH00558 с использованием systemctl, journalctlиapachectl команды. Наконец, вы узнали, как редактировать конфигурацию Apache в различных дистрибутивах Linux, чтобы отключить сообщения.

Если вы хотите узнать больше о том, как Apache использует ServerNameдирективы, документация Apache о виртуальных хостах на основе имен объясняет эту директиву более подробно.

Далее в серии: Ошибка конфигурации Apache AH02572: Не удалось настроить хотя бы один сертификат и ключ

Так же в этом разделе:
 
MyTetra Share v.0.64
Яндекс индекс цитирования