10

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

但是,此配置会导致No input file specifiedPHP 出错。我能够解决它的唯一方法是改变这一行:

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

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

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

4

5 回答 5

4

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

fastcgi_param  SCRIPT_FILENAME    $request_filename;

我发现这行在 RHEL 中丢失了,而在一个完美运行的 Debian nginx 中。

于 2012-10-20T09:11:42.770 回答
1

参数是否PATH_TRANSLATED获得正确的 URI?我认为这是 conf 文件中不计算的变量的直接连接。在它们之间添加斜线时,它们可能被正确解释。

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

于 2010-04-16T08:14:10.693 回答
0

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

于 2010-03-23T11:12:21.110 回答
0

偏好问题。只要你保持一致,任何一种方式都可以。

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

于 2010-04-12T03:32:13.143 回答
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;
}
于 2010-04-20T20:23:57.023 回答