Restarting web server apache2
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
I am a newby installing Ubuntu Can someone help on the commands I need to set this up? I already tried vim /etc/apache2/apache2.conf
and adding localhost but I am still getting message when I restart Apache2 server.
romainl
184k20 gold badges277 silver badges309 bronze badges
asked Sep 11, 2015 at 6:43
Fast but not so elegant solution:
Navigate to the file — apache2.conf, i would use a terminal, here the steps:
-
cd /etc/apache2/
2.vim apache2.conf ( or pluma apache2.conf, if you are not a vi-geek )
-
Write on the bottom:
- ServerName localhost
-
Save the file and restart apache,
with following commands in the terminal:- /etc/init.d/apache2 restart
You can use some UI or other commands like «service apache2 restart«.
- /etc/init.d/apache2 restart
Just for the case, you can make a check, to see ether this directive isn’t just disabled in some of the configuration files:
- grep -inRH «ServerName » /etc/apache2/ | grep «s#»*
Now the error is gone. You need root-rights for all this steps or use «sudo» instead.
Hope i could help you. Cheers.
answered Feb 11, 2016 at 13:13
Run the following command:
apachectl -t -D DUMP_INCLUDES
to determine path to your httpd.conf
configuration file, then edit that file and uncomment (or add) line which should specify value for ServerName
option, e.g.
ServerName localhost
For the web server, use the registered DNS name (e.g. example.com
).
If your host doesn’t have a registered DNS name, enter its IP address here.
Then restart your Apache as usual, e.g. apachectl graceful
.
answered Oct 23, 2017 at 12:25
kenorbkenorb
153k86 gold badges674 silver badges738 bronze badges
Add below tag in your configuration file and try
ServerName localhost
answered Jun 5, 2020 at 6:46
1
Your can use the commands for errors and which services are running.
I’ll try using journalctl -u httpd.service and check if it’s there based on the results. I know this was just a quick example in the localhost case and it works. But we all know that less experienced users can take advice literally and end up with, say, a sub-optimal or dangerous setting. This must always be remembered, therefore use the following: the ServerName directive allows your to use different domain names localhost user-desktop 127.0.0.1 127.0.1.1
without errors for /etc/apache2/apache2.conf after the line # vim: syntax=apache ts=4 sw=4 sts=4 sr noet at the end of the file.
sudo journalctl -u apache2.service --since today --no-pager
sudo journalctl -u httpd.service --since today --no-pager
sudo systemctl status apache2.service -l --no-pager
sudo systemctl status httpd.service -l --no-pager
sudo tail -10 /var/log/apache2/access.log
sudo tail -10 /var/log/apache2/error.log
answered Jan 9, 2022 at 21:31
26 сентября, 2020 12:02 пп
27 856 views
| Комментариев нет
LAMP Stack
Эта серия мануалов поможет вам предотвратить или устранить самые распространенные ошибки, которые возникают при работе с веб-сервером Apache.
Каждый мануал в этой серии включает описание распространенных ошибок Apache, связанных с конфигурацией, сетью, файловой системой или привилегиями.
Ошибка конфигурации Apache «AH00558: Could not reliably determine the server’s fully qualified domain name» возникает, когда в настройках Apache нет глобальной директивы ServerName. Сообщение в основном предназначено для информирования, и сама по себе ошибка AH00558 не помешает правильной работе Apache.
В этом мануале вы узнаете, как применить алгоритм, описанный в руководстве Устранение общих ошибок Apache, чтобы обнаружить AH00558. Мы также поможем вам установить директиву ServerName, чтобы устранить эту ошибку.
Примечание: Если вы уже определили, что на вашем сервере Apache появляется ошибка AH00558, вы можете пропустить разделы по поиску неполадок и сразу перейти к последнему разделу этого мануала, чтобы установить глобальную директиву ServerName.
Поиск ошибки с помощью systemctl
Первый шаг при устранении AH00558 – это проверить статус Apache с помощью systemctl. Вывод systemctl часто содержит всю информацию, необходимую для исправления ошибки.
В дистрибутивах Ubuntu и Debian запустите следующую команду, чтобы проверить статус Apache:
sudo systemctl status apache2.service -l --no-pager
В CentOS, Fedora и других системах, производных от RedHat, используйте эту команду:
sudo systemctl status httpd.service -l --no-pager
Флаг -l выводит все содержимое строки без сокращений (без замены длинных строк многоточием (…)). Флаг –no-pager выводит весь лог на ваш экран, не вызывая инструмент less, который показывает только один экран контента за раз.
Вы должны получить такой вывод:
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. В вашем случае 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 и найдите такую строку:
-- 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 может быть обнаружена с помощью утилиты Apache apachectl. Она может перехватывать подобные сообщения перед перезагрузкой или перезапуском Apache, и вам не придется искать ошибки в логах systemctl и journalctl.
Чтобы проверить конфигурацию Apache на наличие ошибки AH00558, выполните следующую команду:
sudo apachectl configtest
Вы должны получить следующий вывод, если на вашем сервере действительно есть ошибка AH00558:
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
Syntax OK
Как и в предыдущих разделах этого мануала, в которых для поиска сообщений AH00558 использовались systemctl и journalctl, здесь важно найти строку, содержащую сообщение AH00558. Еще раз обратите внимание, что IP-адрес (172.17.0.2) у вас может отличаться.
В следующем разделе мы поможем установить директиву ServerName для устранения сообщений об ошибках AH00558.
Установка глобальной директивы ServerName
Чтобы устранить ошибку AH00558, необходимо добавить директиву ServerName в конфигурацию Apache. Apache использует директиву ServerName для сопоставления входящих HTTP-запросов с IP-адресом или именем DNS хоста (с помощью директив VirtualHost) для обработки запросов нескольких сайтов, размещенных в рамках одного сервера.
В сообщении об ошибке отмечается, что также нужно установить глобальную директиву ServerName. С ее помощью Apache сможет корректно обрабатывать входящие запросы, которые не сопоставляются с VirtualHost, не выдавая при этом дополнительных ошибок.
Для максимальной совместимости с различными конфигурациями Apache используйте для вашей глобальной директивы ServerName значение 127.0.0.1. При необходимости вы можете использовать другой IP-адрес или DNS-имя, соответствующее конфигурации вашего сервера, но безопаснее всего использовать 127.0.0.1.
В системах Ubuntu и Debian откройте файл /etc/apache2/apache2.conf с правами root:
sudo nano /etc/apache2/apache2.conf
Добавьте в конец файла строку ServerName 127.0.0.1:
. . .
# 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
В CentOS, Fedora и других системах RedHat откройте файл /etc/httpd/conf/httpd.conf с правами root:
sudo nano /etc/httpd/conf/httpd.conf
Добавьте строку ServerName 127.0.0.1 в конец файла:
. . .
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
ServerName 127.0.0.1
Сохраните и закройте файл, когда закончите.
После добавления директивы ServerName в конфигурацию запустите apachectl, чтобы проверить ошибки в обновленной конфигурации веб-сервера.
sudo apachectl configtest
Если apachectl не обнаружила ошибок в конфигурации, вы увидите:
Syntax OK
Теперь вы можете перезапустить Apache, используя соответствующую команду systemctl restart для вашего дистрибутива Linux.
В системах Ubuntu и Debian запустите:
sudo systemctl restart apache2.service
В системах CentOS, Fedora и RedHat используйте эту команду:
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.
Tags: Apache, apachectl, CentOS, Debian, Fedora, journalctl, systemctl, Ubuntu
Posted:
05 Aug, 20
Updated:
14 Dec, 21
by Antoniy Yushkevych
1 Min
When attempting to install an Apache web server on Windows server you may face a very common error. You will encounter this problem when you will try to install and set up the latest versions of Apache. The error AH00558 requires you to set the ‘ServerName’ directive globally.
Before fixing the problem here’s a preview of the error that you will see on your screen.
AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::7077:eaf3:2440:24a1. Set the 'ServerName' directive globally to suppress this message
How to solve the Apache error AH00558:
To solve this we should determine the server name in Apache config file.
Apache config file is located in C:Apache24confhttpd.conf
1. open C:Apache24confhttpd.conf
with notepad or any other text editor.
2. search for this line in config file «#ServerName
www.example.com:80
«
3. uncomment this line by removing # from the first of line and edit as below
ServerName 127.0.0.1
4. save the file and exit
This will definitely solve the problem. You can check it yourself: run apache by running httpd.exe.
If it worked let us know your thoughts in the comments below. For the full guide on setting up Apache, check our «Full Apache installation guide» from here.
https://monovm.com/blog/how-to-install-apache-on-windows/
I’m trying to restart Apache 2:
sudo service apache2 restart
But get the below error:
* Restarting web server apache2
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
I’ve tried to change
sudo gedit /etc/apache2/httpd.conf
A blank file appears, and I’d added this:
ServerName localhost
But that error doesn’t disappear!
How can I fix this problem?
muru
191k52 gold badges468 silver badges719 bronze badges
asked Aug 6, 2013 at 13:42
Hamed KamravaHamed Kamrava
2,25511 gold badges33 silver badges49 bronze badges
1
I found this: How do I restart/reload Apache when it can’t determine the domain name?
Good news! Apache is restarting successfully. Apache just isn’t sure
where you want serve from, so it’s choosing your localhost (127.0.0.1)
by default. To prevent this message from appearing, clarify that you
want to serve from localhost (127.0.0.1) by adding the following line
into your/etc/apache2/apache2.conf
file:ServerName localhost
answered Aug 6, 2013 at 13:52
3
Specifying ServerName localhost
in your configuration files outside of the virtual host sections is the way to do this.
Other answers suggest that you should modify /etc/apache2/httpd.conf
. This file gets overwritten when apache gets upgraded from apt. For Apache configuration that you don’t want to get overwritten, you should create a new file. Here is the «Debian way» to make this configuration change:
# create the configuration file in the "available" section
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
# enable it by creating a symlink to it from the "enabled" section
sudo a2enconf servername
# restart the server
sudo service apache2 restart
answered Mar 10, 2014 at 20:03
1
Your localhost IP Address should be 127.0.0.1, instead of 127.0.1.1. Please setup your /etc/hosts
file properly. Then edit the httpd.conf
file:
sudo -H gedit /etc/apache2/httpd.conf
When a blank file appears, please add this line, then save:
ServerName localhost
Zanna♦
68.9k56 gold badges215 silver badges327 bronze badges
answered Mar 2, 2014 at 12:36
MasabzaMasabza
511 silver badge1 bronze badge
0
Here is another Solution:
Before:
[root@centos ~]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: httpd: apr_sockaddr_info_get() failed for centos.wks.local
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
Added 192.168.226.131 centos.wks.local
in /etc/hosts
file
Note: 192.168.226.131 is my Apache server IP address.
After:
[root@centos ~]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
answered Aug 6, 2013 at 14:02
Rahul PatilRahul Patil
3242 silver badges10 bronze badges
3
Перейти к содержимому
Однажды после установки и настройки Apache2 в Ubuntu Server 20.04 я заметил следующую ошибку в логах /var/log/apache2/error.log:
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName’ directive globally to suppress this message
При этом директива ServerName была указана для сайтов настроенных в /etc/apache2/sites-enabled, но не указана глобально как написано в ошибке.
Поэтому для решения ошибки, я открыл основной файл конфигурации Apache2:
nano /etc/apache2/apache2.conf
И после # Global configuration, указал:
Потом проверил корректность конфигурации:
И применил конфигурацию:
Либо можно перезапустить apache2:
После этого ошибка была решена.
Смотрите другие мои статьи на тему Apache2