Nginx / FPM / PHP所有的php文件都说“找不到文件”。


8

我刚刚在centos 5.8最终64位计算机上安装了nginx 1.1.13和php 5.4.0。Nginx和PHP / Fpm正在运行,我可以通过ssh命令行运行php脚本,但是在浏览器中,我一直在显示“找不到文件”。我所有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的旧版本)。

为什么会出现这些错误?


1
没关系,它已排序。这是一个愚蠢的权限问题。
Mr.Boon 2012年

Answers:


17

放入“包括fastcgi_params;” 在所有“ fastcgi_param *”行之前,“包括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;
}

3
伙计,我已经浪费了4个小时,您的回答对我有所帮助。
专家

自昨天以来,我一直试图克服这个问题。您的回答对我很有帮助!谢谢!!!
KacperKołodziej2014年

1
我们如何在不对路径进行硬编码的情况下做到这一点?$ document_root vars似乎不起作用?
user1179459

3

我遇到过同样的问题。

我要解决的问题是检查运行nginx,php-fpm的用户,并检查其访问根目录所在文件夹的权限。它是默认的“ www-data”。

但是您可以使用ps aux | grep php-fpmps aux | grep nginx命令找出答案。

您必须确保运行这些进程的用户可以访问该文件夹。


谢谢你的提示。我试图将我的项目托管在我的Dropbox目录中,该目录默认具有700个权限。将Dropbox权限更改为755可解决此问题。
Rodion Baskakov 2015年

1

我遇到了同样的问题,对我来说,这是nginx服务器配置中配置错误/不存在的“ root”指令


1

我使用这种配置,希望对您有所帮助。它在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;
}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.