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服务。
改完后,测试很久并未再出现Noinput 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。
-
Linux
+关注
关注
87文章
11215浏览量
208749 -
nginx
+关注
关注
0文章
142浏览量
12158
原文标题:Nginx的No input file specified
文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论