Я потратил несколько часов на этот вопрос, и, несмотря на большое количество сообщений, связанных с ним, я не могу его решить. У меня есть блок Fedora 20 с Nginx + PHP-FPM, который работал неплохо до сегодняшнего дня (после того, как я перезагрузил php-fpm.service, я думаю). Nginx обслуживает статические файлы без проблем, но любой файл PHP вызывает ошибку 403.
Разрешения в порядке, nginx и php-fpm работают под пользователем "nginx":
root 13763 0.0 0.6 490428 24924 ? Ss 15:47 0:00 php-fpm: master process (/etc/php-fpm.conf)
nginx 13764 0.0 0.1 490428 7296 ? S 15:47 0:00 php-fpm: pool www
nginx 13765 0.0 0.1 490428 7296 ? S 15:47 0:00 php-fpm: pool www
nginx 13766 0.0 0.1 490428 7296 ? S 15:47 0:00 php-fpm: pool www
nginx 13767 0.0 0.1 490428 7296 ? S 15:47 0:00 php-fpm: pool www
nginx 13768 0.0 0.1 490428 6848 ? S 15:47 0:00 php-fpm: pool www
Обслуживаемые файлы также настроены на пользователя nginx, я даже закончил chmoding 777, чтобы эти файлы пытались, но все же "Access denied" для любых файлов PHP.
Ниже приведен сервер моей конфигурации Nginx:
server {
listen 80;
server_name localhost;
root /var/www/html;
location ~ \.php$ {
fastcgi_intercept_errors on;
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Пул PHP-FPM:
[www]
...
listen = 127.0.0.1:9000
user = nginx
group = nginx
...
Для версий:
php-5.5.11 (а также php-fpm-5.5.11)
Nginx-1.4.7
Я добавляю журнал ошибок Nginx:
FastCGI sent in stderr: "Access to the script '/var/www/html' has been denied (see security.limit_extensions)" while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xxx.xxx.xxx.xxx"
И точный, что security.limit_extensions
правильный, установлен на: security.limit_extensions = .php
.
О разрешениях пути, можно пропустить /var/www/html. Что мне не хватает?