8 сентября, 2020 11:28 дп
4 043 views
| Комментариев нет
Centos, Debian, LAMP Stack, Ubuntu
Эта серия мануалов поможет вам предотвратить или устранить самые распространенные ошибки, которые возникают при работе с веб-сервером Apache.
Каждый последующий мануал в этой серии включает описание распространенных ошибок Apache, связанных с конфигурацией, сетью, файловой системой или привилегиями. Мы начнем с обзора команд и логов, которые вы можете использовать для устранения неполадок Apache. В последующих руководствах мы подробно рассмотрим конкретные ошибки.
Есть три основные команды и несколько общих логов, которые вы можете использовать, чтобы начать устранение ошибок Apache. По сути здесь вы найдете стандартную стратегию поиска ошибок и их причин: обычно эти команды используются в указанном здесь порядке, после чего можно изучить логи на предмет конкретных диагностических данных.
Команды, которые необходимы для устранения неполадок Apache в большинстве дистрибутивов Linux:
- systemctl – используется для управления сервисами Linux и взаимодействия с ними через менеджер сервисов systemd.
- journalctl – используется для запроса и просмотра логов, созданных systemd.
- apachectl – при устранении неполадок эта команда используется для проверки конфигурации Apache.
Далее мы подробно опишем эти команды, способы их использования и расположение логов Apache, в которых можно найти дополнительную информацию об ошибках.
Примечание: В системах Debian и Ubuntu сервис и процесс Apache называется apache2, а в CentOS, Fedora и других системах RedHat – httpd. Имя сервиса и процесса – это единственное отличие команд запуска, остановки и проверки состояния Apache в разных системах. Логи journalctl также должны работать одинаково в любой системе Linux, которая использует systemd для управления Apache. При работе с этим мануалом вы должны использовать правильное имя сервиса в зависимости от вашего дистрибутива Linux.
Команды systemctl для Apache
Чтобы устранить распространенные ошибки Apache с помощью менеджера сервисов systemd, первым делом вам необходимо проверить состояние процессов Apache в вашей системе. Следующие команды systemctl помогут вам узнать больше о состоянии процессов Apache.
В Ubuntu и Debian используйте:
sudo systemctl status apache2.service -l --no-pager
Флаг -l отображает полный вывод без сокращения. Флаг –no-pager направляет вывод непосредственно на ваш терминал. Вы должны получить такой результат:
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 Mon 2020-07-13 14:43:35 UTC; 1 day 4h ago
Process: 929 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 1346 (apache2)
Tasks: 55 (limit: 4702)
CGroup: /system.slice/apache2.service
├─1346 /usr/sbin/apache2 -k start
. . .
Чтобы изучить процесс веб-сервера в CentOS и Fedora, используйте:
sudo systemctl status httpd.service -l --no-pager
Вы получите такой результат:
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2020-07-14 19:46:52 UTC; 3s ago
Docs: man:httpd.service(8)
Main PID: 21217 (httpd)
Status: "Started, listening on: port 80"
Tasks: 213 (limit: 2881)
Memory: 16.6M
CGroup: /system.slice/httpd.service
├─21217 /usr/sbin/httpd -DFOREGROUND
. . .
Jul 14 19:46:52 localhost.localdomain httpd[21217]: Server configured, listening on: port 80
Независимо от дистрибутива вы должны обратить внимание на строку Active в выводе. Если ваш сервер Apache не отображается как active (running), хотя он должен работать, возможно, произошла ошибка и прервала его работу. Как правило, при возникновении ошибок в выводе будет строка failed:
Active: failed (Result: exit-code) since Tue 2020-07-14 20:01:29 UTC; 1s ago
Если проблема заключается в процессе или конфигурации Apache, вы можете устранить ее с помощью команды journalctl.
Команды journalctl для Apache
Чтобы проверить логи systemd для Apache, вы можете использовать команду journalctl. Логи systemd для Apache обычно содержат данные о проблемах с запуском или управлением процессом Apache.
Эти логи отделены от логов запросов и ошибок Apache. Команда journalctl отображает логи systemd, которые описывают сам сервис Apache (от его запуска до завершения работы, включая все ошибки процесса, которые могут возникнуть на этом пути).
В системах Ubuntu и Debian для проверки логов используйте следующую команду:
sudo journalctl -u apache2.service --since today --no-pager
Флаг –since today ограничивает вывод команды записями лога, начиная с 00:00:00 текущего дня. Использование этой опции поможет ограничить объем записей лога, которые вам необходимо изучить для выявления ошибок. Вы должны получить следующий результат:
Jul 14 20:12:14 ubuntu2004 systemd[1]: Starting The Apache HTTP Server...
Jul 14 20:12:14 ubuntu2004 systemd[1]: Started The Apache HTTP Server.
Если вы используете систему на базе CentOS или Fedora, введите эту версию команды:
sudo journalctl -u httpd.service --since today --no-pager
Вы получите такой результат:
Jul 14 20:13:09 centos8 systemd[1]: Starting The Apache HTTP Server...
. . .
Jul 14 20:13:10 centos8 httpd[21591]: Server configured, listening on: port 80
В случае ошибки в выводе будет строка, приведенная ниже (имя хоста будет отличаться в зависимости от дистрибутива Linux):
Jul 14 20:13:37 yourhostname systemd[1]: Failed to start The Apache HTTP Server.
Если в ваших логах Apache есть подобные ошибки, то следующее, что нужно сделать для устранения возможных проблем – это исследовать конфигурации Apache с помощью инструмента командной строки apachectl.
Устранение неполадок с помощью apachectl
Большинство дистрибутивов Linux включают утилиту apachectl в установку Apache по умолчанию. apachectl – бесценный инструмент, помогающий обнаруживать и диагностировать проблемы конфигурации Apache.
Проверьте конфигурацию Apache с помощью команды apachectl configtest. Инструмент проанализирует ваши файлы Apache и обнаружит все ошибки или недостающие настройки перед попыткой запуска сервера.
Команда одинакова для дистрибутивов Ubuntu, Debian, CentOS и Fedora:
sudo apachectl configtest
Если конфигурация Apache не содержит ошибок, вы получите такой результат:
Syntax OK
В зависимости от вашего дистрибутива Linux в выводе могут быть и другие строки, но самая важная строка – это та, в которой говорится, что с синтаксисом все ок.
Если в вашей конфигурации Apache есть ошибка (например, директива ссылается на деактивированный модуль) или опечатка, apachectl обнаружит ее и попытается уведомить вас о проблеме.
Например, попытка использовать в директиве отключенный модуль Apache приведет к появлению следующих сообщений apachectl:
AH00526: Syntax error on line 232 of /etc/apache2/apache2.conf:
Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
В этом примере модуль ssl не включен, поэтому при проверке конфигурации директива SSLEngine выдает ошибку. Последняя строка также указывает, что в логе ошибок Apache может содержаться дополнительная информация, и это следующее место для поиска подробной отладочной информации.
Логи Apache
Логи Apache – очень полезный ресурс для устранения неполадок. Как правило, каждая ошибка, возникающая в браузере или другом HTTP-клиенте, создает соответствующую запись в логах Apache. Иногда Apache также выводит в свои логи ошибки, связанные с конфигурацией, встроенными модулями и другой отладочной информацией.
Чтобы проверить ошибки при устранении неполадок Apache на сервере Fedora, CentOS или RedHat, изучите файл /var/log/httpd/error_log.
Если вы устраняете неполадки в системе Debian или Ubuntu, проверьте /var/log/apache2/error.log с помощью инструмента tail или less. Например, чтобы просмотреть последние две строки лога ошибок с помощью tail, выполните следующую команду:
sudo tail -n 2 /var/log/apache2/error.log
Замените количество строк, которые вы хотите изучить. Укажите количество строк вместо числа 2 в команде.
В системе CentOS или Fedora файл журнала для проверки – /var/log/httpd/error_log.
Ниже мы приводим пример пример ошибки (ее текст не зависит от дистрибутива Linux):
[Wed Jul 15 01:34:12.093005 2020] [proxy:error] [pid 13949:tid 140150453516032] (13)Permission denied: AH00957: HTTP: attempt to connect to 127.0.0.1:9090 (127.0.0.1) failed
[Wed Jul 15 01:34:12.093078 2020] [proxy_http:error] [pid 13949:tid 140150453516032] [client 127.0.0.1:42480] AH01114: HTTP: failed to make connection to backend: 127.0.0.1
Эти две строки представляют собой отдельные сообщения об ошибках. Обе они ссылаются на модуль, вызвавший ошибку (proxy в первой строке, proxy_http во второй), и содержат код ошибки, индивидуальный для модуля. Первый, AH00957, указывает на то, что сервер Apache пытался подключиться к бэкенд-серверу (в данном случае к 127.0.0.1 по порту 9090) с помощью модуля proxy, но не смог этого сделать.
Вторая ошибка исходит из первой: AH01114 – это ошибка модуля proxy_http, которая также указывает на то, что Apache не смог подключиться к бэкенд-серверу для выполнения HTTP-запроса.
Эти строки мы привели просто для примера. Если вы диагностируете ошибки на своем сервере Apache, скорее всего, вы найдете совсем другие строки с ошибками в ваших логах. Независимо от дистрибутива Linux, строки ошибок в логах всегда содержат соответствующий модуль Apache и код ошибки, а также текстовое описание ошибки.
Как только вы поймете, что могло вызвать вызывать проблему на вашем сервере Apache, вы можете продолжить исследование и устранение неполадок. Код ошибки и текстовое описание особенно полезны, поскольку дают конкретные указания, которые можно использовать для сужения диапазона возможных причин возникновения ошибки.
Заключение
Устранение ошибок Apache может включать как диагностику ошибок сервиса, так и обнаружение неверно настроенных параметров модулей. В этом вводном руководстве по диагностике Apache мы посмотрели, как использовать ряд утилит, чтобы сузить круг возможных причин появления ошибок. Обычно эти утилиты нужно использовать в том же порядке, в каком они описаны тут (но вы всегда можете пропустить некоторые действия или начать сразу с изучения логов, если у вас есть общее представление о том, в чем может быть проблема).
Однако чаще всего полезно следовать общей схеме устранения неполадок и использовать эти инструменты в описанном порядке. Начните с systemctl, чтобы проверить состояние сервера Apache. Если вам нужна дополнительная информация, изучите логи systemd для Apache с помощью команды journalctl. Если после проверки journalctl проблема все еще не ясна, проверьте конфигурации Apache с помощью команды apachectl configtest. Для более глубокого изучения неполадок проверьте логи Apache, обычно они указывают на конкретную ошибку (предоставляя полезные для диагностики данные и коды ошибок).
Tags: Apache, apachectl, journalctl, systemctl
I am trying to create a web server on my ubuntu 18.04 so i installed Apache2
but i can’t start it.
Here’s what appeared when i run the systemctl status apache2.service
command
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: failed (Result: exit-code) since Sat 2020-02-22 13:58:09 CET; 34s ago
Process: 2791 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
Feb 22 13:58:09 moemen apachectl[2791]: AH00558: apache2: Could not reliably determine the server's
Feb 22 13:58:09 moemen apachectl[2791]: (98)Address already in use: AH00072: make_sock: could not b
Feb 22 13:58:09 moemen apachectl[2791]: (98)Address already in use: AH00072: make_sock: could not b
Feb 22 13:58:09 moemen apachectl[2791]: no listening sockets available, shutting down
Feb 22 13:58:09 moemen apachectl[2791]: AH00015: Unable to open logs
Feb 22 13:58:09 moemen apachectl[2791]: Action 'start' failed.
Feb 22 13:58:09 moemen apachectl[2791]: The Apache error log may have more information.
Feb 22 13:58:09 moemen systemd[1]: apache2.service: Control process exited, code=exited status=1
Feb 22 13:58:09 moemen systemd[1]: apache2.service: Failed with result 'exit-code'.
Feb 22 13:58:09 moemen systemd[1]: Failed to start The Apache HTTP Server.
I’m new at this can you please help me
asked Feb 22, 2020 at 13:21
1
I also faced same problem.
First check
$ sudo systemctl status nginx
If nginx
is active then stop this with
$ sudo systemctl stop nginx
then again try to start apache2 server in different terminal.
Greenonline
1,3228 gold badges22 silver badges30 bronze badges
answered Aug 8, 2020 at 11:07
2
first remove apache2
sudo apt-get --purge remove apache2
sudo apt-get autoremove
after that if there files (.conf) /etc/sites-available remove them using
rm example.com.conf
then install again
sudo apt-get install apache2
now it will fixed
check it now
sudo ufw allow 'Apache'
sudo systemctl status apache2
answered Oct 30, 2020 at 4:00
csanjeewagcsanjeewag
1341 silver badge2 bronze badges
1
Let me give a more general answer than the first 2. One possible problem with Apache is, when we try to run it, it may fail because port 80 is used by another software:
- a common case is nginx which is covered by Devashish Mishra
- in my case it was a server app that I deployed (in node.js, I had to tell pm2 to stop it)
- in general, you may want to find what uses port 80. This may be done like Chi.C.J.Rajeeva Lochana has suggested: install netstat if you don’t have it (
sudo apt install net-tools
), use it:sudo netstat -antup | grep 80
. It will show some lines which may include:::80
or<your IP>:80
which will tell what is listening to the port
Once you’ve found what listens to the 80 port, you have to decide what to do with it. For instance, if that’s nginx and you don’t use it, you may go like Devashish Mishra has suggested: just stop it (sudo systemctl stop nginx
). Likewise, you can stop or kill (sudo killall -9 program-name
) other programs. However, if you need them, you’ll also need to further configure Apache and rerun them (the exact steps highly depend on the case).
answered Jan 25, 2021 at 10:47
YakovLYakovL
7,22112 gold badges58 silver badges93 bronze badges
Please read this carefully.
Perform the following command, and if you see it is apache, then do the following below the command.
Note: You need to install the net-tools package before you could run netstat. Run sudo apt install net-tools
to install it.
sudo netstat -antup | grep 80
You should check the line with something like <Your IP>:80
.
Please note that this might also happen when you uninstall Apache when it is running.
The command could be:
sudo killall -9 program-name
Replace program-name with the program’s name if the program running on port 80 is not stoppable. Let me know it it doesn’t work.
Thanks.
answered Feb 23, 2020 at 7:08
Example personExample person
3,0573 gold badges16 silver badges43 bronze badges
I found this problem and was able to solve it by creating a folder /var/log/apache2
, I checked in the /var/log/
folder, it turns out that there is no apache2 folder, just like in the case of mysql that won’t start.
seen from your log that
Feb 22 13:58:09 moment apachectl[2791]: AH00015: Unable to open logs
maybe this will help
answered Feb 18, 2022 at 0:04
- On your terminal.
- Type:
sudo stop /etc/init.d/apache2
The response will be:
Stopping apache2 (via systemctl): apache2.service.
- Now start the server:
sudo /opt/lampp/lampp start
If you installed lamp correctly this should work
Tyler2P
2,28118 gold badges23 silver badges29 bronze badges
answered Dec 27, 2022 at 14:19
If you are trying to install apache2 webserver as we mentioned in our another post “How to install Apache webserver on Ubuntu ?” there are chances that you may see an error like “systemd[1]: Failed to start The Apache HTTP Server.” in a red color on command line as below,
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.
invoke-rc.d: initscript apache2, action "start" failed.
● 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: failed (Result: exit-code) since Mon 2020-05-18 23:42:39 IST; 6ms ago
Process: 5424 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
May 18 23:42:39 devlab apachectl[5424]: 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
May 18 23:42:39 devlab apachectl[5424]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
May 18 23:42:39 devlab apachectl[5424]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
May 18 23:42:39 devlab apachectl[5424]: no listening sockets available, shutting down
May 18 23:42:39 devlab apachectl[5424]: AH00015: Unable to open logs
May 18 23:42:39 devlab apachectl[5424]: Action 'start' failed.
May 18 23:42:39 devlab apachectl[5424]: The Apache error log may have more information.
May 18 23:42:39 devlab systemd[1]: apache2.service: Control process exited, code=exited status=1
May 18 23:42:39 devlab systemd[1]: apache2.service: Failed with result 'exit-code'.
May 18 23:42:39 devlab systemd[1]: Failed to start The Apache HTTP Server.
Solution
Its possible that you may already have some other webserver running on your website which is using port 80, hence it was showing an error as “Address already in use: : make_sock: could not bind to address” so we have to identify which application is using this port 80 and stop this application so as we can install apache2.
Check which app is using port 80, you can use below command and Close this program and kill using command line. [ You can also refer to our post “Identify which application / process is using which port or keeping it busy on android / Linux” ]
$ sudo netstat -nap | grep 80
In our Desktop, we had “lighthttpd” installed and running which was causing this problem, so we used below command to identify it as,
$ ps -ax | grep httpd
6165 ? Ss 0:00 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
and then stopped this webserver as,
$ sudo /etc/init.d/lighttpd stop
[ ok ] Stopping lighttpd (via systemctl): lighttpd.service.
I use the systemctl to restart the httpd, but failed:
[root@controller ~]# systemctl restart httpd.service
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
And I status it, get the below information:
[root@controller ~]# systemctl status httpd.service
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Wed 2017-07-12 15:48:35 CST; 11s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 10093 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 10091 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 10091 (code=exited, status=1/FAILURE)
Jul 12 15:48:35 controller httpd[10091]: (13)Permission denied: AH00072: make_sock: could not bind to address [::]:5000
Jul 12 15:48:35 controller httpd[10091]: (13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:5000
Jul 12 15:48:35 controller httpd[10091]: no listening sockets available, shutting down
Jul 12 15:48:35 controller httpd[10091]: AH00015: Unable to open logs
Jul 12 15:48:35 controller systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Jul 12 15:48:35 controller kill[10093]: kill: cannot find process ""
Jul 12 15:48:35 controller systemd[1]: httpd.service: control process exited, code=exited status=1
Jul 12 15:48:35 controller systemd[1]: Failed to start The Apache HTTP Server.
Jul 12 15:48:35 controller systemd[1]: Unit httpd.service entered failed state.
Jul 12 15:48:35 controller systemd[1]: httpd.service failed.
I use the journalctl -xe
:
root@controller httpd]# journalctl -xe
Jul 12 16:06:43 controller systemd[1]: Unit httpd.service entered failed state.
Jul 12 16:06:43 controller systemd[1]: httpd.service failed.
Jul 12 16:06:43 controller polkitd[1056]: Unregistered Authentication Agent for unix-process:10390:2078277 (system bus name :1.159, object path /org/freedesktop/PolicyKit1/Authent
Jul 12 16:06:53 controller polkitd[1056]: Registered Authentication Agent for unix-process:10405:2079366 (system bus name :1.160 [/usr/bin/pkttyagent --notify-fd 5 --fallback], ob
Jul 12 16:06:53 controller systemd[1]: Reloading.
Jul 12 16:06:53 controller systemd[1]: [/usr/lib/systemd/system/memcached.service:43] Unknown lvalue 'MemoryDenyWriteExecute' in section 'Service'
Jul 12 16:06:53 controller systemd[1]: Configuration file /usr/lib/systemd/system/auditd.service is marked world-inaccessible. This has no effect as configuration data is accessib
Jul 12 16:06:54 controller systemd[1]: Configuration file /usr/lib/systemd/system/wpa_supplicant.service is marked executable. Please remove executable permission bits. Proceeding
Jul 12 16:06:54 controller polkitd[1056]: Unregistered Authentication Agent for unix-process:10405:2079366 (system bus name :1.160, object path /org/freedesktop/PolicyKit1/Authent
Jul 12 16:06:55 controller polkitd[1056]: Registered Authentication Agent for unix-process:10421:2079560 (system bus name :1.161 [/usr/bin/pkttyagent --notify-fd 5 --fallback], ob
Jul 12 16:06:55 controller systemd[1]: Starting The Apache HTTP Server...
-- Subject: Unit httpd.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has begun starting up.
Jul 12 16:06:55 controller httpd[10426]: (13)Permission denied: AH00072: make_sock: could not bind to address [::]:5000
Jul 12 16:06:55 controller httpd[10426]: (13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:5000
Jul 12 16:06:55 controller httpd[10426]: no listening sockets available, shutting down
Jul 12 16:06:55 controller httpd[10426]: AH00015: Unable to open logs
Jul 12 16:06:55 controller systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Jul 12 16:06:55 controller kill[10428]: kill: cannot find process ""
Jul 12 16:06:55 controller systemd[1]: httpd.service: control process exited, code=exited status=1
Jul 12 16:06:55 controller systemd[1]: Failed to start The Apache HTTP Server.
-- Subject: Unit httpd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has failed.
--
-- The result is failed.
Jul 12 16:06:55 controller systemd[1]: Unit httpd.service entered failed state.
Jul 12 16:06:55 controller systemd[1]: httpd.service failed.
Jul 12 16:06:55 controller polkitd[1056]: Unregistered Authentication Agent for unix-process:10421:2079560 (system bus name :1.161, object path /org/freedesktop/PolicyKit1/Authent
lines 1377-1410/1410 (END)
And in the /var/log/httpd/
directory, there is no logs here.
EDIT-1
And I find the 5000
port, get the below information:
[root@controller selinux]# netstat | grep 5000
[root@controller selinux]#
EDIT-2
In the /var/www/
directory:
[root@controller www]# ls
cgi-bin html
both the cgi-bin and html is empty.
EDIT-3
the httpd.conf
file contents under the /etc/httpd/conf/
:
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
ServerName controller
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
# Further relax access to the default document root:
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf
EDIT-4
The /var/log/httpd
limits is below:
[root@controller system]# ll -d /var/log/httpd
drwx------. 2 root root 6 Nov 20 2015 /var/log/httpd
EDIT-5
I check the port 5000:
[root@controller httpd]# ps -aux | grep 5000
rabbitmq 8710 0.9 0.9 2348444 78620 ? Ssl 14:39 1:25 /usr/lib64/erlang/erts-7.3.1.2/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -K true -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin -noshell -noinput -s rabbit boot -sname rabbit@controller -boot start_sasl -config /etc/rabbitmq/rabbitmq -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit@controller.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@controller-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@controller-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@controller" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672
root 11787 0.0 0.0 112644 952 pts/1 S+ 17:13 0:00 grep --color=auto 5000
EDIT-6
I use the semanage to add the port 5000:
[root@controller httpd]# semanage port -a -t http_port_t -p tcp 5000
ValueError: Port tcp/5000 already defined
EDIT-7
In the directory /usr/lib/systemd/system/
, there is httpd.service here:
[root@controller system]# pwd
/usr/lib/systemd/system
[root@controller system]# ls | grep http
httpd.service
Откуда там на второй строчке это написано? И пробел лишний уберите.
я не совсем понял о чем вы
сейчас у меня стартовая страница zabbix выглядит как белый экран с каким то кодом:
<?php
/*
** Zabbix
** Copyright (C) 2001-2020 Zabbix SIA
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/require_once dirname(__FILE__).'/include/classes/user/CWebUser.php';
CWebUser::disableSessionCookie();
require_once
dirname(__FILE__).'/include/config.inc.php';
require_once dirname(__FILE__).'/include/forms.inc.php';$page['title'] = _('ZABBIX');
$page['file'] = 'index.php';// VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION
$fields = [
'name' => [T_ZBX_STR, O_NO, null, null, 'isset({enter}) && {enter} != "'.ZBX_GUEST_USER.'"', _('Username')],
'password' => [T_ZBX_STR, O_OPT, null, null, 'isset({enter}) && {enter} != "'.ZBX_GUEST_USER.'"'],
'sessionid' => [T_ZBX_STR, O_OPT, null, null, null],
'reconnect' => [T_ZBX_INT, O_OPT, P_SYS, null, null],
'enter' => [T_ZBX_STR, O_OPT, P_SYS, null, null],
'autologin' => [T_ZBX_INT, O_OPT, null, null, null],
'request' => [T_ZBX_STR, O_OPT, null, null, null],
'form' => [T_ZBX_STR, O_OPT, null, null, null]
];
check_fields($fields);$config = select_config();
if (
hasRequest('reconnect') && CWebUser::isLoggedIn()) {
if ($config['saml_auth_enabled'] == ZBX_AUTH_SAML_ENABLED && $config['saml_slo_url'] !== ''
&& CSession::keyExists('saml_data')) {
redirect('index_sso.php?slo');
} CWebUser::logout();
redirect('index.php');
}$autologin = hasRequest('enter') ? getRequest('autologin', 0) : getRequest('autologin', 1);
$request = getRequest('request', '');
if (
$request) {
$test_request = [];
preg_match('/^/?(?<filename>[a-z0-9_.]+.php)(?<request>?.*)?$/i', $request, $test_request); $request = (array_key_exists('filename', $test_request) && file_exists('./'.$test_request['filename']))
? $test_request['filename'].(array_key_exists('request', $test_request) ? $test_request['request'] : '')
: '';
}
if (!
hasRequest('form') && $config['http_auth_enabled'] == ZBX_AUTH_HTTP_ENABLED
&& $config['http_login_form'] == ZBX_AUTH_FORM_HTTP && !hasRequest('enter')) {
redirect('index_http.php'); exit;
}// login via form
if (hasRequest('enter') && CWebUser::login(getRequest('name', ZBX_GUEST_USER), getRequest('password', ''))) {
if (CWebUser::$data['autologin'] != $autologin) {
API::User()->update([
'userid' => CWebUser::$data['userid'],
'autologin' => $autologin
]);
} $redirect = array_filter([CWebUser::isGuest() ? '' : $request, CWebUser::$data['url'], ZBX_DEFAULT_URL]);
redirect(reset($redirect)); exit;
}
if (
CWebUser::isLoggedIn() && !CWebUser::isGuest()) {
redirect(CWebUser::$data['url'] ? CWebUser::$data['url'] : ZBX_DEFAULT_URL);
}$messages = clear_messages();
echo (new
CView('general.login', [
'http_login_url' => ($config['http_auth_enabled'] == ZBX_AUTH_HTTP_ENABLED)
? (new CUrl('index_http.php'))->setArgument('request', getRequest('request'))
: '',
'saml_login_url' => ($config['saml_auth_enabled'] == ZBX_AUTH_SAML_ENABLED)
? (new CUrl('index_sso.php'))->setArgument('request', getRequest('request'))
: '',
'guest_login_url' => CWebUser::isGuestAllowed() ? (new CUrl())->setArgument('enter', ZBX_GUEST_USER) : '',
'autologin' => $autologin == 1,
'error' => (hasRequest('enter') && $messages) ? array_pop($messages) : null
]))->getOutput();
че происходит, я не понимаю, сам по себе живет как-будто