Apache startet nicht, keine httpd-Fehlermeldungen

5984
Matt Pennington

Ich versuche, den httpd-Dienst auf RHEL 7 zu starten.

Wenn ich renne systemctl start httpd, schlägt das fehl.

Hier ist die Ausgabe von journalctl -xe. Es gibt keine offensichtliche Fehlermeldung für httpd. Würden sich die Fehler für polkitd auf Apache auswirken? Wie würde ich diese lösen?

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) 

EDIT: Protokollausgabe und zusätzliche Informationen

Hier ist die Ausgabe von tail -f 10 /var/log/httpd/error_log. Die Protokolldateien werden in einem NFS-Mount-Verzeichnis gespeichert (remote gehostet). Ich kann die Dateien von der Maschine aus bearbeiten, auf der Apache läuft, aber Apache selbst scheint nicht in sie schreiben zu können.

==> /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 

EDIT 2: Zusätzliche Protokolle

[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
Was haben Sie in `httpd.conf` geändert? Zeigen Sie mir die Ausgabe von 'tail -f 10 / var / log / httpd / error_log' an pun vor 7 Jahren 0
Ich habe die Protokollausgabe oben hinzugefügt. Anscheinend gibt es ein Problem beim Schreiben in die Protokolldateien. Ich habe keine Änderungen direkt an httpd.conf vorgenommen Matt Pennington vor 7 Jahren 0

1 Antwort auf die Frage

4
Jeffrey Wen

Wenn für Ihr RHEL 7-System SELinux erzwungen wird, müssen Sie die booleschen SELinux-Werte aktivieren, damit NFS funktioniert. So prüfen Sie, ob Ihr System SELinux verwendet:

# getenforce 

Wenn die oben genannten Rückgaben erzwungen werden, fahren Sie bitte fort:

# getsebool -a | grep httpd_use_nfs 

Wenn das Obige zurückkehrt httpd_use_nfs --> off, führen Sie den folgenden Befehl aus, damit Apache dauerhaft NFS verwenden kann.

# setsebool -P httpd_use_nfs on 

Apache sollte jetzt in diese Fehlerprotokolldateien schreiben dürfen.

Danke, Jeffrey. Ich habe "httpd_use_nfs" auf "on" gesetzt, aber ich erhalte immer noch die Fehlermeldung "Permission denied: AH00091: httpd: Fehlerprotokolldatei konnte nicht geöffnet werden". Müssen die Dateien eine bestimmte Berechtigungsstufe oder einen bestimmten Besitzer haben? Matt Pennington vor 7 Jahren 0
Lassen Sie uns bestätigen, unter welchem ​​Benutzer & Gruppe Apache läuft: `httpd -S | grep "Benutzer \ | Gruppe". Angenommen, Sie erhalten `User: name =" apache "` und `Group: name =" apache "`, dann sollte Ihr NFS-Verzeichnis `/ data / web / logs 'mit Benutzer & Gruppe als` apache: gemountet sein. Apache " Jeffrey Wen vor 7 Jahren 0
Die "Benutzer: Gruppe" ist in der Tat "Apache: Apache". Ich habe das Verzeichnis `/ data / web / logs` in` apache: apache` geändert, aber ich bekomme immer noch die gleichen Fehler. Müssen die eigentlichen Protokolldateien auch "Apache: Apache" sein? Matt Pennington vor 7 Jahren 0
Ja, die Protokolle sollten ebenfalls im Besitz von 'apache: apache' sein. Sie haben zwei Optionen - Option 1: Löschen Sie die Protokolle (wenn sie nicht verwendet werden) und starten Sie Apache neu. Apache erstellt die Protokolle automatisch neu. Option 2: alle Protokolle zu "Apache: Apache" chown Jeffrey Wen vor 7 Jahren 0
Ich habe Option 1 und Option 2 ohne Erfolg ausprobiert. Mit Option 1 habe ich die gleichen Fehler erhalten und die Protokolldateien nicht neu erstellt Matt Pennington vor 7 Jahren 0
Sind die Apache-Protokolle immer noch gleich? Wenn ja, könnten Sie sehen, ob SELinux Ihnen immer noch Fehler gibt? `sealert -a / var / log / audit / audit.log` Jeffrey Wen vor 7 Jahren 0
Ich habe die Ausgabe des audit.log im OP veröffentlicht. Ich habe versucht, das Update aus diesem Problem anzuwenden: http://serverfault.com/a/677805, hatte jedoch keine Auswirkungen. Matt Pennington vor 7 Jahren 0
Versuchen wir zuerst, das Problem zu trennen. Können Sie versuchen, die Standard-Apache-Protokolle wieder in `/ var / log / httpd / ` zu ändern und anschließend Apache neu zu starten, um zu sehen, ob { `erneut generiert wird? Wenn Ihre Protokolle neu generiert werden und Apache funktioniert, können wir uns zumindest auf den NFS-Teil konzentrieren. Jeffrey Wen vor 7 Jahren 0
Ich habe das Protokoll auskommentiert und httpd startet gut Matt Pennington vor 7 Jahren 0