Apache не запускается, нет сообщений об ошибках httpd

5859
Matt Pennington

Я пытаюсь запустить службу httpd на RHEL 7.

Когда я бегу systemctl start httpd, это не получается.

Вот вывод journalctl -xe. Нет явного сообщения об ошибке для httpd. Будут ли ошибки для polkitd влиять на apache? Как бы я решил это?

Jun 10 10:59:50 localhost.localdomain polkitd[850]: Registered Authentication Agent for unix-process:4462:116143 (system bus name :1.57 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) Jun 10 10:59:50 localhost.localdomain 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.  Jun 10 10:59:50 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE Jun 10 10:59:50 localhost.localdomain kill[4468]: kill: cannot find process "" Jun 10 10:59:50 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited status=1 Jun 10 10:59:50 localhost.localdomain 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. Jun 10 10:59:50 localhost.localdomain systemd[1]: Unit httpd.service entered failed state. Jun 10 10:59:50 localhost.localdomain systemd[1]: httpd.service failed. Jun 10 10:59:50 localhost.localdomain polkitd[850]: Unregistered Authentication Agent for unix-process:4462:116143 (system bus name :1.57, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus) 

РЕДАКТИРОВАТЬ: вывод журнала и дополнительная информация

Вот вывод tail -f 10 /var/log/httpd/error_log. Файлы журнала хранятся в смонтированном каталоге NFS (размещенном удаленно). Я могу редактировать файлы с компьютера, на котором работает apache, но, похоже, сам apache не может писать в них.

==> /var/log/httpd/error_log <== (13)Permission denied: AH00091: httpd: could not open error log file /data/web/logs/new-error.log. AH00015: Unable to open logs (13)Permission denied: AH00091: httpd: could not open error log file /data/web/logs/new-error.log. AH00015: Unable to open logs (13)Permission denied: AH00091: httpd: could not open error log file /data/web/logs/new-error.log. AH00015: Unable to open logs (13)Permission denied: AH00091: httpd: could not open error log file /data/web/logs/new-error.log. AH00015: Unable to open logs (13)Permission denied: AH00091: httpd: could not open error log file /data/web/logs/io-new-error.log. AH00015: Unable to open logs 

РЕДАКТИРОВАТЬ 2: Дополнительные журналы

[root@localhost web]# sealert -a /var/log/audit/audit.log 78% donetype=AVC msg=audit(1465576122.933:606): avc: denied { write } for pid=4384 comm="httpd" name="logs" dev="0:38" ino=1060076 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:nfs_t:s0 tclass=dir  **** Invalid AVC allowed in current policy ***  type=AVC msg=audit(1465576695.541:615): avc: denied { read } for pid=4489 comm="httpd" name="sims" dev="0:38" ino=1060159 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:nfs_t:s0 tclass=lnk_file  **** Invalid AVC allowed in current policy ***  78% donetype=AVC msg=audit(1465576695.580:616): avc: denied { read } for pid=4489 comm="httpd" name="sims" dev="0:38" ino=1060159 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:nfs_t:s0 tclass=lnk_file  **** Invalid AVC allowed in current policy ***  type=AVC msg=audit(1465576695.581:617): avc: denied { write } for pid=4489 comm="httpd" name="logs" dev="0:38" ino=1060076 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:nfs_t:s0 tclass=dir  **** Invalid AVC allowed in current policy ***  100% done found 0 alerts in /var/log/audit/audit.log 
4
Что вы изменили в httpd.conf? Покажите мне вывод `tail -f 10 / var / log / httpd / error_log` pun 7 лет назад 0
Я добавил вывод журнала выше. Похоже, что существует проблема записи в файлы журнала. Я не вносил никаких изменений непосредственно в httpd.conf Matt Pennington 7 лет назад 0

1 ответ на вопрос

4
Jeffrey Wen

If your RHEL 7 system has SELinux enforcing, you need to enable the SELinux boolean values to get NFS working. To check if your system is utilizing SELinux:

# getenforce 

If the above returns enforcing, please continue:

# getsebool -a | grep httpd_use_nfs 

If the above returns httpd_use_nfs --> off, run the following command to permanently allow Apache to use NFS.

# setsebool -P httpd_use_nfs on 

Apache should be allowed to write to those error log files now.

Спасибо, Джеффри. Я установил для `httpd_use_nfs` значение` on`, но все равно получаю ошибку `Отказано в доступе: AH00091: httpd: не удалось открыть файл журнала ошибок`. Должны ли файлы иметь определенный уровень разрешений или владельца? Matt Pennington 7 лет назад 0
Давайте подтвердим, под каким пользователем и группой работает Apache: `httpd -S | grep 'User \ | Group'`. Например, допустим, вы получаете `User: name =" apache "` и `Group: name =" apache "`, тогда ваша директория NFS `/ data / web / logs` должна быть смонтирована с user & group как` apache: apache` Jeffrey Wen 7 лет назад 0
`User: group` действительно является` apache: apache`. Я выбрал каталог `/ data / web / logs` для` apache: apache`, но все равно получаю те же ошибки. фактические файлы журнала должны быть также `apache: apache`? Matt Pennington 7 лет назад 0
Да, журналы должны принадлежать `apache: apache`. У вас есть два варианта - вариант 1: удалить журналы (если они бесполезны) и перезапустить apache; apache автоматически создаст заново логи. Вариант 2: преобразуйте все журналы в `apache: apache` Jeffrey Wen 7 лет назад 0
Я попробовал Вариант 1 и Вариант 2 без удачи. С вариантом 1 я получил те же ошибки, и он не воссоздает файлы журнала Matt Pennington 7 лет назад 0
Логи apache все те же? Если да, то можете ли вы увидеть, что SELinux все еще дает вам ошибки? `sealert -a / var / log / Audit / Audit.log` Jeffrey Wen 7 лет назад 0
Я опубликовал результаты Audit.log в ОП. Я пытался применить исправление из этой проблемы: http://serverfault.com/a/677805, но это не имело никакого эффекта. Matt Pennington 7 лет назад 0
Давайте сначала попробуем отделить проблему. Можете ли вы попробовать изменить журналы Apache по умолчанию обратно на `/ var / log / httpd / `, а затем перезапустить Apache, чтобы посмотреть, будет ли `` перегенерирован? Если ваши журналы восстанавливаются и Apache работает, по крайней мере, мы можем сосредоточиться на части NFS. Jeffrey Wen 7 лет назад 0
Я закомментировал журнал и httpd запускается нормально Matt Pennington 7 лет назад 0