我对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; }