Frage nginx + PHP-FPM = "Berechtigung verweigert" Fehler 13 in nginx log; Konfigurationsfehler?


Ich habe nginx 0.7x + PHP-FPM unter PHP 5.2.10 auf einem RHEL5-Server laufen, aber ich versuche, dieses Setup unter PHP-PHP 5.3.3 auf einem zweiten Server zu duplizieren einige Probleme mit Erlaubnisfehlern jedes Mal, wenn es ein GET gibt.

FPM wird gestartet und bestätigt, dass fastcgi auf 9000 wartet, aber jedes Mal, wenn ich ein GET mache, sehe ich diesen Fehler im nginx-Protokoll:

2010/08/12 23:38:53 [crit] 5019#0: *5 stat() "/home/noisepages/www/" failed (13: Permission denied), client: 24.215.173.141, server: dev.noisepages.com, request: "GET / HTTP/1.1", host: "dev.noisepages.com"

Barebones nginx.conf.default funktioniert zumindest. Hier ist meine nginx.conf

server {
        listen       80;
        server_name  dev.noisepages.com;
        root   /home/noisepages/www;
        index  index.html index.htm index.php;

        access_log  logs/dev.access.log;
 error_log logs/dev.error.log;

        location / {

 if (-f $request_filename) {
  expires 30d;
  break;
  }

 # this sends all non-existing file or directory requests to index.php
 rewrite ^.*/files/(.*) /wp-includes/ms-files.php?file=$1;
 if (!-e $request_filename) {
     rewrite ^.+?(/wp-.*) $1 last;
  rewrite ^.+?(/.*\.php)$ $1 last;
  rewrite ^ /index.php last;
  }
        }

        location ~ \.php$ {
            include        fastcgi_params;
            fastcgi_pass   unix:/dev/shm/php-fastcgi.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME    /home/dev/www/$fastcgi_script_name;
        }
    }

(Die zusätzlichen Rewrite-Anweisungen sind für die Verwendung von WordPress Multisite aka WordPress MU)

Ich habe auch verifiziert, dass der Benutzer www-data nicht nur in nginx.conf, sondern auch in php-fpm.conf für Benutzer- und Gruppenwerte deklariert ist.

Vielleicht verstehe ich nicht, was die Fehlermeldung 13 verursacht? Seltsamerweise hatte ich versucht, dev.noisepages.com auf dem ersten Server parallel zu ein paar anderen virtuellen Hosts einzurichten - von denen jeder funktionierte - und bekam denselben Fehler.


20
2017-08-13 13:21


Ursprung




Antworten:


Sie müssen sicherstellen, dass Sie haben +x auf alles der Verzeichnisse im Pfad zum Stamm der Site - so /home, /home/noisepages und /home/noisepages/www


52
2017-08-13 16:13



Ja, in der Tat hatte www die richtigen Berechtigungen, aber nicht den ganzen Pfad! Vielen Dank! Macht Sinn - dummer Fehler meinerseits. - Peter Kirn
Wenn ich dir noch 10 Upvotes geben könnte, würde ich es tun. - Tim
Du bist wirklich cool! Ich verbringe 2 Stunden in Google, um deine Antwort zu finden! Vielen Dank! - Serhii Polishchuk
Vielen Dank! Ich habe auf einem Produktionsserver herumgespielt und ich habe geschwitzt, als das passierte ...! - lephleg


Stellen Sie sicher, dass / home / dev über die richtigen Berechtigungen verfügt

chmod +x /home/dev

4
2017-08-13 14:27





Ich hatte auch in php-fpm Probleme mit Berechtigungen, insbesondere mit PHP-Sitzungen. Es stellte sich heraus, dass ich nur den Benutzer ändern musste, den php-fpm zum Ausführen von Prozessen verwendet, da er standardmäßig auf "Niemand" eingestellt war.

Tutorial dazu hier: http://www.duchnik.com/tutorials/setting-up-php-with-nginx/


2
2017-08-11 15:52



Während dies theoretisch die Frage beantworten könnte, es wäre vorzuziehen um die wesentlichen Teile der Antwort hier einzubeziehen und den Link als Referenz bereitzustellen. - Scott Pack
Die Verbindung ist tot .. - Christoph Bühler


Ich hatte ein simples Problem, das mich hierher gebracht hat. Meine Lösung (basierend auf der ausgewählten Antwort) war do a

chown -R root:www-data /home/noisepages/www
chmod g+w -R /home/noisepages/www

Jetzt klappt es gut :)


1
2017-11-07 22:31



Aber wie können Sie es tun, wenn Sie Chroot-Benutzer verwenden? Wenn chroot Benutzer verwendet werden, muss der Ordner / home / user / www dem Benutzer gehören, und es funktioniert nicht. - Vincent LITUR
Entschuldigung, ich weiß nicht :( - Scott Warren