У меня есть 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;
}
}
(Дополнительные директивы перезаписи предназначены для использования мультисайта WordPress, также известного как WordPress MU)
Я также проверил, что www-данные пользователя объявлены не только в nginx.conf, но и в php-fpm.conf для значений пользователя и группы.
Может я не понимаю, что вызывает сообщение об ошибке 13? Как ни странно, я попытался настроить dev.noisepages.com на первом сервере параллельно с парой других виртуальных хостов, каждый из которых работал нормально, и получил ту же ошибку.
Вам нужно убедиться, что у вас есть +x
на все каталогов на пути, ведущем к корню сайта - так /home
, /home/noisepages
и /home/noisepages/www
убедитесь, что / home / dev имеет правильные разрешения
chmod +x /home/dev
У меня была аналогичная проблема, которая меня сюда привела. Мое решение (на основе выбранного ответа) было сделать
chown -R root:www-data /home/noisepages/www
chmod g+w -R /home/noisepages/www
Теперь работает нормально :)
У меня также были проблемы с разрешениями в php-fpm, в частности, с сессиями php. Оказалось, что мне просто нужно было изменить пользователя, которого php-fpm использует для запуска процессов, поскольку по умолчанию он был установлен как «никто».
учебник по нему здесь: http://www.duchnik.com/tutorials/setting-up-php-with-nginx/