nginx的和$ DOCUMENT_ROOT尾随斜线?
题
我使用以下配置为nginx的: http://gist.github.com/340956
然而,该配置导致与PHP一个No input file specified
错误。我已经能够解决它的唯一方法是通过改变这一行:
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
请注意在 “/” $document_root
和$fastcgi_script_name
之间。笔者获悉,这是错误的配置,但没有一个人能告诉我到底为什么我的配置需要这个额外的斜杠。
我怎样才能摆脱额外的斜线的?
解决方案
只需面临着同样的问题(在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。
在第3行删除try_files $uri index.php$uri;
。
偏好的问题。只要你是一致的,无论哪种方式是好的。
要么添加在配置文件中的斜线,并且确保有在端部没有额外的斜线和分别文档根和脚本名的开始,或者反之亦然。
什么,当你明确地添加根指令发生像这样:
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;
}
不隶属于 StackOverflow