Назад | Перейти на главную страницу

Nginx / FPM / PHP все файлы php говорят: «Файл не найден».

Я только что установил nginx 1.1.13 и php 5.4.0 на финальную 64-битную машину centos 5.8. Nginx и PHP / Fpm работают, и я могу запускать скрипты php через командную строку ssh, но в браузере я продолжаю получать сообщение «Файл не найден». ошибки во всех моих файлах PHP.

Вот как у меня nginx.conf обрабатывает PHP-скрипты:

      location ~ \.php$
      {
              root                    /opt/nginx/html;
              fastcgi_pass            unix:/tmp/fpm.sock;
              fastcgi_index           index.php;
              fastcgi_param           SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;
              include                 fastcgi_params;
      }

Это прямая копия / вставка с других моих серверов, где она отлично работает с этой настройкой (но на них работают более старые версии php / fpm).

Почему я получаю эти ошибки?

Поставьте "include fastcgi_params;" перед всеми строками "fastcgi_param *", "include fastcgi_params;" отменяет все ваши строки "fastcgi_param *" (см. журнал отладки nginx):

location ~ \.php$ {
    root                    /opt/nginx/html;
    fastcgi_pass            unix:/tmp/fpm.sock;
    fastcgi_index           index.php;
    include                 fastcgi_params;
    fastcgi_param           SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;
}

Я была такая же проблема.

Чтобы решить эту проблему, я проверил пользователя, запустившего nginx, php-fpm, и проверил его разрешения на доступ к папке, в которой находится корень. По умолчанию это www-data.

но вы можете узнать, используя ps aux | grep php-fpm и ps aux | grep nginx команды.

Вы должны убедиться, что папка доступна пользователю, запускающему эти процессы.

У меня была такая же проблема, и для меня это была неправильная конфигурация / несуществующая директива «root» в конфигурации сервера nginx

Я использую такую ​​конфигурацию, желаю, чтобы она вам помогала. Он работает в OS X. Что касается меня, ответ @Xosofox сработал. Я неправильно набрал версию nginx 1.6.2 как 1.2.6, так что корень стал несуществующим каталогом.

location ~ \.php$ {
    fastcgi_intercept_errors on;
    root           /usr/local/Cellar/nginx/1.6.2/html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME /usr/local/Cellar/nginx/1.6.2/html$fastcgi_script_name;
}

Я решаю эту проблему, сменив пользователя и группу на текущего пользователя: group в php-fpm.d / www.conf

По умолчанию пользователь и группа - nginx, измените это ....

Надеюсь это поможет