FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream


作者: 我不是鱼 (2016-05-12 23:13) 分类: Nginx   标签: Nigix Primary script unknown

打开网址出 404 File not found. 错误,但文件的确是存在的,找查nginx error log,发现这个

2016/05/12 00:01:01 [error] 24257#0: *166460 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 223.73.106.97, server: www.lnmp.cn, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.lnmp.cn"

这个是因为nginx配置文件中fastcgi_param没有设置对路径引起的,在nginx的 default.conf 配置文件中有这么一段:

    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

复制过来不改的话就中招了,其中 /scripts$fastcgi_script_name; 要改成对应的网址路径,例如网址放在 /www/lnmp.cn 就改成

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/lnmp.cn$fastcgi_script_name;
        include        fastcgi_params;
    }


注意不要在 /www/lnmp.cn 后面加 / 。有或者用变量 $document_root 代替:

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

修改完配置,记得reload nginx。

另外一种情况是,当访问的php文件确实是不存在时,例如访问 /lnmp.cn.php, 这个文件并不存在,也会在log中产生上述的错误。因为按照这个规则 "location ~ \.php$ {", 所有 .php 结尾的访问都会传到 fastcgi 中解析,文件不存在导致上述错误,和上面路径写错是一样的道理。期待的结果是当 php 文件不存在时,直接返回 404。 这里可以通过 try_files 来实现,不存在直接返回 404。

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

记得reload nginx。

前一篇: Nginx 实现 HTTP 用户认证
后一篇: PHP 5.3 中用 mb_detect_encoding 检测字符串是否为 UTF-8 的问题


评论

Hi! Where I can download the XRumer 12? This URL is not working - http://freecheapxrumer.com/ :(
[游客]RocioXRuma 2016-12-01 04:10

XRumer 12.0.19 is the BEST
[游客]Melanieculge 2016-10-23 22:31

[1]

添加评论

昵称:


验证码