nginx和尾部斜线$ document_root?

我对nginx使用以下configuration: http : //gist.github.com/340956

但是,这种configuration会导致PHP No input file specified错误。 我能解决这个问题的唯一方法就是改变这条线:

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

请注意$document_root$fastcgi_script_name之间的“/”。 我被告知,这是错误的configuration,但没有人能够确切地告诉我为什么我的configuration需要额外的斜线。

我怎样才能摆脱额外的斜线?

刚刚面对同样的问题(在RHEL6服务器上安装nginx + php-fpm时),可以通过在/ etc / nginx / fastcgi_params中添加以下行来解决

 fastcgi_param SCRIPT_FILENAME $request_filename; 

我在RHEL中发现了这条线,而在一个完美的Debian nginx中。

参数PATH_TRANSLATED是否得到正确的URI? 我在想这是在不计算的conf文件中的变量的直接连接。 当他们之间加入一个斜线,也许他们正确解释。

当您收到No input file specified的错误时,请检查您的日志以查看请求的URI。

删除try_files $uri index.php$uri; 在第3行。

优先事项。 只要你一致,任何一种方式都是好的。

可以在配置文件中添加斜杠,并确保在文档根目录和脚本名称的末尾和开始处没有额外的斜杠,反之亦然。

当你显式地添加一个root指令时会发生什么,如下所示:

 location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(.*)$; include fastcgi.conf; root /var/www/my_webroot; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; }