zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Nginx报 No input file specified. 的问题解决之路

Nginx 解决 File No input specified 问题
2023-09-14 08:58:21 时间

今天接手公司的一个项目,照例将项目clone下来,配置本地host,nginx,然后访问。

a391347f52001a0a8e9438e5c089fca9f2cfd246


怎么回事?迅速在php的入口文件index.php最上面var_dump(1111),再次刷新,页面仍旧是上面的状态。


没有打印出1111说明并没有执行php文件,然后翻nginx虚拟主机的配置,检查之后确认入口文件的路径和重写规则正确。这是怎么回事呢??


抓包看http请求和响应,发现nginx返回的是404的状态,但是我明明访问的是/index.php文件啊,怎么还报404呢,这引起了我的好奇心。


然后我又在index.php的同目录下创建了一个a.php文件,并将nginx的重写规则去掉,重启后直接访问这个a.php文件,然而还是上面的页面。


出现这个情况,说明是nginx在转发cgi的时候并没有走到php的文件,那这个时候需要百度了来看看有没有人遇到这个情况了。

一搜,果然

98db415748141b5028c06257449dd3bf62b4ce8b

然后我就开始按照搜到的方法一个一个的试,结果意料之中的没有解决问题。(这里必须吐槽一下百度出来的结果,很大的一部分都是一样的,也就是说文章其实只有一篇,然后被A站转走,B站又把A站的转走,C站又转走B站……,搜索质量不堪入目。而且最令人发指的是后续转载的网站几乎都把文章归属于自己发表,真恶心……)


网络靠不住,那自己就得接着一点点排查了。


分析一下问题所在:nginx接受了请求但是没有反代到php,但是访问其他的虚拟主机却是可以的,说明问题出在这个项目上。那就需要慢慢缩小问题的范围一点点定位问题。


首先创建test文件夹,并在此创建a.php文件,用 /test/a.php访问,结果正常访问。

为什么这里可以但是在根目录下就不行?这么奇怪??


然后在根目录下丢一个a.jpg图片,访问/a.jpg,正常访问。


我擦,这是什么鬼?


然后我就打开根,一个文件一个文件的检查,终于!我发现了问题的所在!!

LOOK!!!

1ef36a4813bc76b5d091139a6be8a4a2e5201a8d


晕菜,居然是这个文件在搞鬼,将文件中的内容全部注释掉,访问正常!


但是这个文件是干什么的呢,http://php.net/manual/zh/configuration.file.per-user.php


哭啊,搞半天居然是这个东东~~~。看来还是经验不足,留此博文,记录一下并希望可以帮助到同样出现这个问题的童鞋。


收工~~


使用php-fpm解析PHP, No input file specified , File not found 是常见错误,原因是php-fpm进程找不到SCRIPT_FILENAME配置的要执行的.php文件,php-fpm返回给nginx的默认404错误提示。
nginx 如何开启解析 PHP 的功能? br # 成功安装后,创建 php-fpm.conf 配置文件,删除 nginx.conf 中 pass the PHP scripts to FastCGI
配置nginx支持php 出现了No input file specified ? 只要修改下安装目录下的  nginx.conf下的  location ~ \.php$ {              root           html;              fastcgi_pass   127.0.0.1:9000;              fastcgi_ind
谷粒学苑项目实战(十):使用Nginx配置请求转发 之前前端的请求端口为8001,可是现在我们又多了8002端口,后面还会有8003、8004……,如何让前端能够请求这么多的端口呢? 也许我们可以写多个BASE_API,分别对应多个端口,可是在vue框架中许多地方都要用到BASE_API,这样修改的地方太多。 这就需要用到Nginx的请求转发了。