加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

“无指定输入文件”的真正解决方案.(nginx,fpm)

发布时间:2020-12-13 21:26:06 所属栏目:Nginx 来源:网络整理
导读:这个问题的大多数答案是,设置fastcgi_param SCRIPT_FILENAME并且它会工作(斜体格式化被打破?!). 我已经设置了这个变量(正确),但它仍然显示错误而不是404页面,因为问题的根源在这里: location ~ .php${ fastcgi_split_path_info ^(.+.php)(/.+)$; fastcg

这个问题的大多数答案是,设置fastcgi_param SCRIPT_FILENAME并且它会工作(斜体格式化被打破?!).

我已经设置了这个变量(正确),但它仍然显示错误而不是404页面,因为问题的根源在这里:

location ~ .php${
            fastcgi_split_path_info ^(.+.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }

一个不存在的路径传递给php5-fpm,这将返回打印错误,该错误在日志中如下所示:

FastCGI sent in stderr:
"Unable to open primary script: ... (No such file or directory)"
while reading response header from upstream

因此,在行fastcgi_pass之前必须有一个条件来检查文件是否真的存在,或者,如果fpm工作者返回“找不到文件”,则引导nginx返回404页面.

我怎样才能做到这一点?

最佳答案
使用try_files $uri = 404;第一!

location ~ .php${
        try_files  $uri =404;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}

感谢http://nginxlibrary.com/resolving-no-input-file-specified-error/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读