解决NGINX PHP "No input file specified"

打开一个页面<?php  phpinfo(); ?>  然后在游览器下运行:页面提示

No input file specified.

FastCGI模式下访问php文件时,出现No input file specified.错误
查看access.log 发现是 404

原因分析:
1、任何对.php文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在。PHP文件不存在,没办法返回普通的404错误,它返回 一个404,并带上一句”No input file specified”

2、还可能跟 路径或者 权限有关系,或者SCRIPT_FILENAME 变量没有被正确的设置(这在nginx是最常见的原因)

1)如果html也出现404错误,那么就是document root 设置的有问题
2)检查脚本文件的权限, 可能PHP或者web server不能读取它
3)SCRIPT_FILENAME设置错误

网上的解决方法:
步骤一:修改nginx主配置文件nginx.conf

默认安装的nginx配置文件中定义fastcgi处是:fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

可以将它改成:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
必须保证 $document_root 在配置文件中,在astcgi_param SCRIPT_FILENAME前面被用到过一次, 后面有解释为什么。

步骤二:修改PHP的住配置文件php.ini
修改/etc/php5/cgi/php.ini中cgi.fix_pathinfo=1
这样也可让php-cgi正常使用SCRIPT_FILENAME这个变量

有人说,这样改也行
fastcgi_param SCRIPT_NAME /home/gavin/nginx/$fastcgi_script_name;

让我们看看PHP对这两个变量是怎么解释的吧
SCRIPT_NAME
SCRIPT_FILENAME
据说,必须指定正确的SCRIPT_FILENAME, PHP-CGI会忽略SCRIPT_NAME(即使它的值设置的是正确的)
或者指定特殊的php.ini, 设置doc_root, discard path, fix pathinfo等等

script_filename 只是被用做一种快捷方式。 如果fix_pathinfo设置打开,init函数将它用来决定真实的路径

因为配置文件会改变 nginx的变量$fastcgi_script_name

fastcgi_param SCRIPT_NAME /home/gavin/nginx/$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;

fastcgi_param SCRIPT_FILENAME /home/gavin/nginx/$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;

这两种配置都是可以的


fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
也是可以的,但必须保证 $document_root 被正确设置过

‘SCRIPT_FILENAME’
当前执行脚本的绝对路径名(pathname)
‘SCRIPT_NAME’
含有当前脚本的路径。当页面需要指向他们自己时,有用. __FILE__ 常量包含路径和文件名

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP’s
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
; this to 1 will cause PHP CGI to fix it’s paths to conform to the spec. A setting
; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; cgi.fix_pathinfo=0

主要跟CGI标准的
PATH_INFO
PATH_TRANSLATED
SCRIPT_NAME
有关系
修修改了好多

我的解决方法:

把 NGINX DEFAULT 那个文件中的

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

改成实际的路径

今天我是这种情况

我的是fastcgi_param SCRIPT_NAME /var/www/nginx-default/$fastcgi_script_name;

然后就好了
---------------------
以上是转载,下面是个人的解决办法:
1. 更改php.ini

首先php.ini的配置中把

;cgi.fix_pathinfo=0   改为

cgi.fix_pathinfo=1

重启PHP或PHP-FPM

2. 在nginx/conf/nginx.conf   找到:
fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  改为:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

然后重启nginx【killall -9 nginx   ,./sbin/nginx】

3、如果还不行,还有一种可能是php的测试页面代码格式有问题,我当初做的时候,phpinfo写成了:<?   php  phpinfo(); ?> 所以错了,应该是<?php    phpinfo(); ?>

结果搞定。

转载于:https://www.cnblogs.com/iceman-/p/8559512.html

解决NGINX PHP No input file specified相关推荐

  1. Nginx配置Thinkphp3.2.3配置,访问Nginx报 No input file specified. 的问题解决

    Nginx配置Thinkphp3.2.3配置,访问Nginx报 No input file specified. 的问题解决 参考文章: (1)Nginx配置Thinkphp3.2.3配置,访问Ngi ...

  2. 解决Could not open input file: think问题

    解决Could not open input file: think问题 参考文章: (1)解决Could not open input file: think问题 (2)https://www.cn ...

  3. nginx php No input file specified 怎样处理?

    配置nginx支持php 出现了No input file specified ? 仅仅要改动下安装文件夹下的  nginx.conf下的 location ~ \.php$ {           ...

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

    今天接手公司的一个项目,照例将项目clone下来,配置本地host,nginx,然后访问. 怎么回事?迅速在php的入口文件index.php最上面var_dump(1111),再次刷新,页面仍旧是上 ...

  5. No input file specified

    当你的php + nginx 显示 No input file specified 查看一下 fastcgi_param  SCRIPT_FILENAME    $document_root$fast ...

  6. php no input file specified.,nginx+php出现No input file specified解决办法

    在自己本地的开发环境突然出现了No input file specified错误,反复检查返现自己的配置文件和配置路径以及权限都没有问题.经过反复的排查终于发现了问题,现将问题及解决分享如下: 问题原 ...

  7. php启动后no input file specified.,nginx+php出现No input file specified解决办法

    今天在自己本地的开发环境突然出现了No input file specified错误,反复检查返现自己的配置文件和配置路径以及权限都没有问题.经过反复的排查终于发现了问题,现将问题及解决分享如下: 问 ...

  8. windows下, nginx 提示错误 No input file specified

    一 环境介绍: win10,  LNMP 二 错误描述: 访问网站时,提示"No input file specified"错误. 排错阶段: 1. 查看nginx access日 ...

  9. 提示No input file specified的解决方法

    (一)IIS Noinput file specified 方法一:改PHP.ini中的doc_root行,打开ini文件注释掉此行,然后重启IIS 方法二: 请修改php.ini 找到 ; cgi. ...

最新文章

  1. 034_nginx报错总结
  2. eclipse mat 打开dump文件,明明大小1G,打开后却只有不到100M.其他的去哪了
  3. Ajax异步与JavaScript的一些初浅认识
  4. 走近深度学习,认识MoXing:初识华为云ModelArts的王牌利器 — MoXing
  5. Win10系统特别卡的一个原因
  6. windows10杀死本地进程
  7. 了解一下Golang的市场行情
  8. MSSQL2008如何关闭代码智能提示?
  9. 设置一个类似手机的锁屏界面但又不知道如何操作
  10. KnockOutJS入门
  11. 集合论—关系的自反、对称和传递闭包
  12. 小程序录音php上传,微信小程序录音文件.silk上传服务器转mp3格式
  13. 最新Win10离线安装.NET Framework 3.5的方法(不需要离线包,只需原版系统安装包,亲测完美快捷有效)
  14. C编程 求1到100之间的奇偶数之和
  15. 一招教会你语音转文字转换器怎么使用
  16. 遗传算法(包含选择、交叉、变异) MATLAB完整代码 中文注释详解
  17. form-generator扩展原生表格,element-table,子表单等组件
  18. InterConnect 和SmartConnect
  19. 使用PM进行硬盘分区
  20. linux下载文件到本地

热门文章

  1. 错误 0xc0202049: 数据流任务 1: 无法在只读列“ID”中插入数据
  2. go 学习Printf
  3. 算法 --- [map的使用]求最大和谐子序列
  4. 算法 --- 平衡二叉树
  5. 使用DataTable作为存储过程的参数
  6. View的绘制-layout流程详解
  7. 19、Fragment
  8. 洛谷 P1469 找筷子
  9. 智慧城市的互联网大脑架构图:大社交网络与智慧城市结合是关键
  10. (原创)JS点击事件——Uncaught TypeError: Cannot set property 'onclick' of null