Вопрос: nginx + PHP-FPM = ошибка отказа в разрешении 13 в журнале nginx; ошибка конфигурации?


У меня есть nginx 0.7x + PHP-FPM, работающий под PHP 5.2.10 на одном сервере RHEL5, но пытаясь дублировать эту установку в комплекте с PHP-FPM в PHP 5.3.3 на втором сервере, у меня есть некоторые проблемы с ошибками разрешения каждый раз, когда есть GET.

FPM запущен и подтвердил, что fastcgi прослушивает 9000, но каждый раз, когда я делаю GET, я вижу эту ошибку в журнале nginx:

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 работает, по крайней мере. Вот мой 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;
        }
    }

(Дополнительные директивы rewrite предназначены для использования WordPress multisite aka WordPress MU)

Я также проверил, что пользовательские www-данные объявляются не только в nginx.conf, но также в php-fpm.conf для значений пользователя и группы.

Может быть, я не понимаю, что вызывает сообщение об ошибке 13? Как ни странно, я попытался настроить dev.noisepages.com на первом сервере параллельно с несколькими другими виртуальными хостами - каждый из которых работал нормально - и получил ту же ошибку.


20
2017-08-13 13:21


Источник




Ответы:


Вы должны убедиться, что у вас есть +x на все из каталогов на пути, ведущем к корню сайта - так /home, /home/noisepages а также /home/noisepages/www


51
2017-08-13 16:13



Да, на самом деле у www были правильные разрешения, но не весь путь! Благодаря! Имеет смысл - глупая ошибка с моей стороны. - Peter Kirn
Если бы я мог дать вам еще 10 голосов, я бы это сделал. - Tim
Ты очень классная! Я провожу 2 часа в Google, чтобы найти ваш ответ! Спасибо! - Serhii Polishchuk
Спасибо! Я возился с производственным сервером, и, когда это случилось, я засыпал холодным потом. - LePhleg


убедитесь, что / home / dev имеет правильные разрешения

chmod +x /home/dev

4
2017-08-13 14:27





У меня были проблемы с разрешениями в php-fpm, в частности, с php-сессиями. Оказалось, что мне просто нужно было изменить пользователя, который использует php-fpm для запуска процессов, поскольку по умолчанию он был настроен на «никто».

учебник по этому поводу здесь: http://www.duchnik.com/tutorials/setting-up-php-with-nginx/


2
2017-08-11 15:52



Хотя это теоретически может ответить на вопрос, было бы предпочтительнее чтобы включить здесь основные части ответа и предоставить ссылку для справки. - Scott Pack
Ссылка мертва .. - Christoph Bühler


У меня была проблема simlar, которая заставила меня здесь. Мое решение (основанное на выбранном ответе) делало

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

Теперь он отлично работает :)


1
2017-11-07 22:31



Но как вы можете это сделать, если используете пользователей Chroot? При использовании chrooted пользователей папка / home / user / www должна принадлежать пользователю, и она не работает. - Vincent LITUR
Извините, я не знаю :( - Scott Warren