Immer wenn ich Apache unter CentOS 7 konfiguriere, erhalte ich meistens „(13) Permission denied: file permissions deny server access
” Fehler wie folgt:
[Fri Nov 12 06:29:24.901157 2021] [core:error] [pid 8287] (13)Permission denied: [client 192.168.10.12:15979] AH00132: file permissions deny server access: /var/www/html/admin/images/logo.png
So beheben Sie Dateiberechtigungen, die den Serverzugriff in Apache verweigern
Schritt 1: Suchen Sie nach der folgenden Apache-Konfiguration wodurch der Zugriff auf alle Dateien und URLs blockiert wird.
<Directory /> Order deny,allow Deny from all </Directory>
Stattdessen sollte es so aussehen:
<Directory /> Order allow,deny Allow from all </Directory>
Schritt 2: Lese-/Schreibberechtigungen prüfen des Stammordners Ihrer Website und der von Apache benötigten Dateien. Führen Sie den folgenden Befehl aus, um Apache Berechtigungen zum Lesen/Schreiben in die Dateien/Ordner zu erteilen:
# chmod -R 755 /var/www/html-R Option im obigen Befehl
aktualisiert rekursiv die Benutzerberechtigungen aller Dateien und Ordner im Stammverzeichnis Ihrer Website.
Schritt 3: Überprüfen Sie den Stammordner/Dateibesitz der Website . Das Eigentum sollte Apache sein (www-data oder apache). Finden Sie zuerst den vom Apache-Prozess auf Ihrem System verwendeten Benutzer mit dem folgenden Befehl heraus:
# egrep -iw --color=auto '^user|^group' /etc/httpd/conf/httpd.conf
oder
# ps aux | egrep '([a|A]pache|[h|H]ttpd)' | awk '{ print $1}' | uniq | tail -1
Ändern Sie nun den Besitz entsprechend mit dem folgenden Befehl:
# chown -R www-data:root /var/www/html
oder
# chown -R apache:root /var/www/html
Schritt 4:Suchen Sie nach SELinux (Security-Enhanced Linux). Möglicherweise müssen Sie chcon
verwenden Befehl, um den Sicherheitskontext des Stammverzeichnisses Ihrer Website wie folgt festzulegen:
# chcon -R -h -t httpd_sys_content_t /var/www/html
Ähnliche Probleme im Zusammenhang mit Apache SELinux:
Stream konnte nicht geöffnet werden:Berechtigung verweigert [Apache]