分享解决No input file specified问题的方法

描述

No input file specified

这个提示大家第一想到的是404,

Nginx如果找不到访问的目标文件就会提示该信息。

但今天我要说的问题并不是简单的404问题,如果是文件路径不对,这个很容易解决。怪异的是,只有访问php的时候才会出现该提示,而且是偶尔出现,大多时候访问正常。

环境是使用一键安装包安装的LNMP,网站为Discuz。

访问静态的图片并不会出现该问题,那问题矛头指向php。

我们以往的解决问题思路是,当遇到问题需要查看日志,正确的、错误的都要看。所以,在此看了nginx的错误日志,看了php-fpm的错误日志,并且把日志级别调整为debug,可惜的是没有发现问题。

这条路走不通,那就用另外一种方法,到google搜,搜了很多文章,有的说是文件权限不对,有的说是open_basedir有限制,这两种情况可以排除。

继续搜,找到一篇更改cgi.fix_pathinfo参数的。

这个倒是有可能,所以不妨试试看,方法是编辑php.ini,找到cgi.fix_pathinfo,把该参数设定为1。注意,修改完该参数后,需要重启php-fpm服务。

改完后,测试很久并未再出现No input file specified的提示,不知道是重启php-fpm后情况好转,还就是因为调整该参数的原因。

总之,这两种情况我都怀疑,只好继续观察一下,看看时间久了会不会继续出现。

对于cgi.fix_pathinfo参数,要想搞清楚它的作用,需要理解php中的pathinfo是什么(请大家自行搜索),不过设置cgi.fix_pathinfo为1的话,有个Nginx的安全隐患,但经测试新版本Nginx并没出现问题。

总结

解决No input file specified问题的方法是,

修改php.ini中的cgi.fix_pathinfo参数的值为1。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分