it-swarm.com.de

Apache - Für eine Komponente des Pfads fehlen Berechtigungen

Es werden keine Bilder meiner Website geladen, obwohl die Pfade korrekt sind. In meinen Apache-Protokollen habe ich reichlich: 

(13)Permission denied: [client 87.231.108.18:57108] AH00035: access to 
my/file/path/some-photo.jpg denied because search permissions are missing 
on a component of the path

Innerhalb der httpd.conf-Datei: 

User Apache
Group Apache

Bis zu meinem Website-Verzeichnis gehören Ordner zu Apache:apache, wobei chmod auf 774 eingestellt ist. 

SELinux Boolean httpd_can_network_connect wurde On

Ich verwende eine .htaccess-Datei, um meinen Domainnamen in das entsprechende Verzeichnis umzuleiten. Ich vermute, dies könnte das Problem verursachen, aber ... das ist nichts anderes als ein Bauchgefühl. 

Ich brauche Hilfe, jeder Vorschlag ist sehr willkommen. Danke vielmals! 

EDIT Inhalt der .htaccess-Datei: 

RewriteEngine On
Options +FollowSymLinks

RewriteCond %{HTTP_Host} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

RewriteCond %{HTTP_Host} www\.domain\.com
RewriteRule (.*) /domain/$1 [L]
10

Ich habe es endlich gefunden! Vielen Dank an Justin Lurman, der die .htaccess-Datei herausgesucht hat. Mir wurde klar, dass Wordpress nicht mehr das Recht hatte, meine .htaccess-Datei zu bearbeiten. Das war noch seltsamer, weil ich zu 100% sicher war, dass die Berechtigungen gut waren (sogar viel zu tolerant, wenn Sie mich fragen). 

Also habe ich mir SElinux angesehen, da ich weiß, dass es mir manchmal Streiche spielen kann und ich hatte Recht. Mit dem folgenden Befehl wurde das Problem gelöst: 

chcon -R --type=httpd_sys_rw_content_t wp-content/

Ich hoffe das hilft jemand anderem :)

16

In meinem Fall verfügte der übergeordnete Ordner nicht über die + x-Berechtigung. Wenn Sie ihn auf 755 ändern, wurde der Trick ausgeführt.

13
Radek

Oder du kannst rennen

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

In diesen Ordnern ...

3

Unter macOS kann dies an einem Benutzergruppen-Berechtigungsproblem liegen.

Gehe zu httpd.conf Datei (befindet sich bei /usr/local/etc/httpd wenn Apache von Homebrew installiert wurde). Finden <IfModule unixd_module> und ändern Sie den Wert vor User in den Benutzernamen Ihres Computers (mit dem Sie sich anmelden). Starten Sie Apache neu.

Dies muss auch für PHP-FMP erfolgen, wenn Sie dies mit Apache verwenden. Finden php-fpm.conf Datei (befindet sich normalerweise bei /usr/local/etc/php/7.x/ und finde die Pooldefinitionen:

kommentar entfernen include=/usr/local/etc/php/7.x/php-fpm.d/*.conf wenn kommentiert und speichern Sie die Datei. öffne nun die kürzlich unkommentierte Datei und finde user = und ändern Sie den Wert von user in den Benutzernamen Ihres Computers. Starten Sie nun PHP service neu.

1
Vahid Amiri

setsebool -P httpd_enable_homedirs 1

chcon -R -t httpd_sys_content_t/home/user/public_html

0
Fabien Thetis

Was für mich funktionierte, war, dass alle Komponentenverzeichnisse im Pfad Ausführungsberechtigungen für alle benötigten 

wenn also der Pfad der Website/home/user1/public_html/docroot lautet

chmod +x /home/user1/
chmod +x /home/user1/public_html/
chmod +x /home/user1/public_html/docroot/
0
GiorgosK