我对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
之间的“/”。我被告知这是错误的配置,但没有人能够告诉我为什么我的配置需要这个额外的斜杠。
如何摆脱那些额外的斜线?
答案 0 :(得分:4)
刚遇到同样的问题(在RHEL6服务器上的nginx + php-fpm的remi安装中),您可以通过在/ etc / nginx / fastcgi_params中添加以下行来解决它
fastcgi_param SCRIPT_FILENAME $request_filename;
我发现在RHEL中缺少这一行,而在一个完美工作的Debian nginx中。
答案 1 :(得分:1)
param PATH_TRANSLATED
是否获得了正确的URI?我认为它是conf文件中不能计算的变量的直接连接。在它们之间添加斜杠时,可能会正确解释它们。
当您收到错误No input file specified
时,请检查您的日志以查看请求的URI。
答案 2 :(得分:0)
删除第3行中的try_files $uri index.php$uri;
。
答案 3 :(得分:0)
偏好问题。只要你保持一致,无论哪种方式都可以。
在配置文件中添加斜杠,并确保文档根目录和脚本名称的末尾和开头没有额外的斜杠,反之亦然。
答案 4 :(得分:0)
当您明确添加如此的根指令时会发生什么:
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;
}