Nginx/PHP-FPM “Доступ запрещен”. ошибка

Я пытаюсь настроить недавно установленный сервер Ubuntu (12.04), но я не могу получить файлы PHP, пробегающие php-fpm. Независимо от того, что я делаю, я всегда получаю "Доступ запрещен". страница (простой текст, не HTML или что-либо).

Установленные пакеты:

nginx
nginx-common
nginx-full
php5
php5-cli
php5-common
php5-fpm

Детали конфигурации:

PHP-FPM:

user = www-data
group = www-data
listen = /var/run/php5-fpm.sock

Nginx:

user www-data;
worker_processes 3;
events { worker_connections 1024; }

Домен Default/test:

server {
    listen       80;
    server_name  localhost;
    root         /extra/htdocs/default;
    index        index.html index.php

    access_log   /extra/logs/default/access.log;
    error_log    /extra/logs/default/error.log;

    location / {
        try_files  $uri $uri/ /index.html;
    }

    location ~ \.php
    {
        fastcgi_split_path_info  ^(.+\.php)(/.+)$;

        include fastcgi_params;

        fastcgi_index   index.php;
        fastcgi_pass    unix:/var/run/php5-fpm.sock;
        fastcgi_param   PATH_INFO         $fastcgi_path_info;
        fastcgi_param   PATH_TRANSLATED   $document_root$fastcgi_path_info;
        fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name;
    }
}

/extra/htdocs/default/index.php:

<?php
phpinfo();

Все остальное - значение по умолчанию. И Nginx и журналы php-fpm не показывают ошибок. Все же, когда я загружаюсь http://<server-ip>/index.php Я получаю страницу "Access denied".

Поиск и устранение неисправностей:

  • Файл index.html работает просто великолепно. Поэтому это должен быть или php-fpm или fastcgi, связывающий между Nginx и php-fpm.
  • Я установил владение (и пользователь и группа) всего /extra каталог к www-data, и владение к 777, только чтобы быть уверенным (я снижу его, после того как это работает, конечно). Таким образом, это - конечно, не проблема полномочий
  • Это не проблема безопасности limit_extensions, что я вижу много: по умолчанию это установлено на .php, который является точно, что я запрашиваю. Я явно установил его на .php .html, с тем же результатом.

Я действительно устаю от этого, я дважды уже установил эту установку (хотя на машинах OSX), и все работало безупречно. Есть ли что-нибудь, что я пропускаю?

Содержание журнала:

Журнал ошибок Nginx пуст.

Журнал доступа Nginx (удаленный IP):

<ip> - - [17/Jul/2012:11:21:25 +0200] "GET /favicon.ico HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
<ip> - - [17/Jul/2012:11:21:28 +0200] "GET /index.php HTTP/1.1" 403 46 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
<ip> - - [17/Jul/2012:11:21:34 +0200] "-" 400 0 "-" "-"

журнал php-fpm:

[17-Jul-2012 10:44:14] NOTICE: fpm is running, pid 4969
[17-Jul-2012 10:44:14] NOTICE: ready to handle connections
14
задан 17 July 2012 в 18:46

1 ответ

Наконец исправили.

Виновником была эта строка в моей конфигурации:

fastcgi_param   PATH_TRANSLATED     $document_root$fastcgi_path_info;

Если я прокомментировал эту строку, все работало нормально. Однако я видел это почти в каждом посте о конфигах Nginx, поэтому меня это беспокоило. Просматривая мои конфиги в миллионный раз, я увидел, что cgi.fix_pathinfophp.ini) было установлено на 0, где оно должно было быть 1. Значение по умолчанию, которое использует PHP, также равно 1, поэтому я должен был изменить это в мои часы отладки, потому что я помню, как читал об этом значении и думал, что оно установлено правильно.

Во всяком случае, может быть, это поможет любому в поиске Google.

0
ответ дан 17 July 2012 в 18:46

Другие вопросы по тегам:

Похожие вопросы: