我使用以下配置为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;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top