Nginx报 No input file specified. 的问题解决之路
今天接手公司的一个项目,照例将项目clone下来,配置本地host,nginx,然后访问。
怎么回事?迅速在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的文件,那这个时候需要百度了来看看有没有人遇到这个情况了。
一搜,果然
然后我就开始按照搜到的方法一个一个的试,结果意料之中的没有解决问题。(这里必须吐槽一下百度出来的结果,很大的一部分都是一样的,也就是说文章其实只有一篇,然后被A站转走,B站又把A站的转走,C站又转走B站……,搜索质量不堪入目。而且最令人发指的是后续转载的网站几乎都把文章归属于自己发表,真恶心……)
网络靠不住,那自己就得接着一点点排查了。
分析一下问题所在:nginx接受了请求但是没有反代到php,但是访问其他的虚拟主机却是可以的,说明问题出在这个项目上。那就需要慢慢缩小问题的范围一点点定位问题。
首先创建test文件夹,并在此创建a.php文件,用 /test/a.php访问,结果正常访问。
为什么这里可以但是在根目录下就不行?这么奇怪??
然后在根目录下丢一个a.jpg图片,访问/a.jpg,正常访问。
我擦,这是什么鬼?
然后我就打开根,一个文件一个文件的检查,终于!我发现了问题的所在!!
LOOK!!!
晕菜,居然是这个文件在搞鬼,将文件中的内容全部注释掉,访问正常!
但是这个文件是干什么的呢,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的请求转发了。
相关文章
- 使用nginx反向代理解决前端跨域问题
- 解决Nginx出现403 forbidden
- Nginx反向代理的目录访问问题
- [转]通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
- [转]最完美解决Nginx部署ThinkPHP项目的办法
- 【异常】Nginx报错[emerg]: unknown directive “user“ in /usr/local/nginx/conf/nginx.conf:xx报错处理
- 【异常】Nginx报错: [emerg] unknown directive ““ in /usr/local/nginx/nginx.conf:xx
- 【已解决杀80端口】nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
- 已解决zipfile.BadZipFile: File is not a zip file
- 网站nginx负载下因程序错误导致多节点重复处理请求的解决过程
- centos7 nginx Failed to read PID from file /run/nginx.pid: Invalid argument 解决方法
- 【已解决】Nginx基于多端口、多域名配置
- nginx 反向代理
- Nginx(4):守护进程,一份nginx实现,一份我的实现,看着拿呗
- 解决nginx反向代理Tomcat出现大量的time_wait