解决NGINX PHP No input file specified

解决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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IE8开发人员工具资料

IE8相对以前的版本还是“改邪归正”了很多&#xff0c;居然提供一个很好用的开发人员工具&#xff0c;着实要夸一夸的&#xff0c;作为使用者我们还是要认真看看这东西怎么用&#xff0c;以便能为己用&#xff0c;网上资料很多再次整理一些。 IE8开发人员工具教程&#xff08;一…

hive mysql 外部表_Hive中的几种表(内部表、外部表...)

这里是在基于完成mysql数据库的安装后使用Hive&#xff1a;在windows中使用navicat远程登录到Linux下面的mysql数据之后&#xff0c;在mysql数据库里面有个DBS表&#xff0c;该表存放的就是hive表在hdfs系统中的路径&#xff0c;这里默认应该是hdfs://hadoop0:9000/user/hive/w…

Web Service 基本概念和技术应用

(一) Web Service 技术的名词解释 往往某一知识点的基本概念总是枯燥而乏味的,但若能花费些时间好好的理解,也能获益匪浅. Web Service 也称作 XML Web Service,是一种可以接收从 Internet 或 Intranet 上的其它系统中传递过来的请求,是轻量级的独立的通讯技术.通过 SOAP 在 We…

mysql主从配置 简书_Mysql主从配置,实现读写分离-Go语言中文社区

转载&#xff1a;https://www.cnblogs.com/alvin_xp/p/4162249.html大型网站为了软解大量的并发访问&#xff0c;除了在网站实现分布式负载均衡&#xff0c;远远不够。到了数据业务层、数据访问层&#xff0c;如果还是传统的数据结构&#xff0c;或者只是单单靠一台服务器扛&am…

TensorFlow 官方文档中文版

TensorFlow 官方文档中文版&#xff1a; http://wiki.jikexueyuan.com/project/tensorflow-zh/ w3cschool https://www.w3cschool.cn/tensorflow_python/转载于:https://www.cnblogs.com/huangsxj/p/8573140.html

continue 的用户及实例

continue 跳出本次循环&#xff0c;继续下一次循环 “break”是跳出整个循环 实例1&#xff1a; for i in range(10): if i <5: continue    #这里条件是小于5&#xff0c;满足条件的就跳出了本次循环&#xff0c;不在执行print&#xff0c;所以最终打印的是5…

VI编辑器的基本使用

VI编辑器 VIM是一个LINUX和UNIX的一个强大编辑器 #vi file 如果有file这个文件直接进入&#xff0c;如果没有则新建后进入。 Vi三种模式 Command mode 命令模式 按esc进入命令模式 Insert mode 编辑模式 按a. i. o都可以进入编辑模式 Ex mode 末行模式 按: 进入末行模式 命令模…

mysql报错注入实战_MySQL手工注入实战

实战记录&#xff0c;日本某站注入点 and 语句测试and11 返回正常&#xff0c;and2跳回首页&#xff0c;可能过滤了用 ’ 测试返回错误页面判断为注入点order by语句查询字段数测试字段数为9and 12 UNION SELECT 1,2,3,4,5,6,7,8,9报错联合查询语句&#xff0c;查询显示位2、3为…

20个简约风格网站设计作品欣赏

这篇文章收集了20个简洁清爽的网站设计作品案例&#xff0c;设计师们能够通过这些优秀的网页设计作品获得灵感&#xff0c;进而设计出更精美&#xff0c;更具有创意的网站作品&#xff0c;一起欣赏。vnsagaPure – Minimal WordPress themeAssemblydeladeeus design studioHocu…

python 股票自动交易从零开始_Python股票自动交易从零开始

课程目录1.Python股票自动交易从零开始~第一集~简介(Av24528809,P1).mp42.Python股票自动交易从零开始~第二集~安装工具包(Av24528809,P2).mp43.Python股票自动交易从零开始~第二集番外~配置Mac工作环境(Av24528809,P3).mp44.Python股票自动交易从零开始~第三集~获得股票列表-A…

[Js-开发常识]为什么定义实体类属性建议用 Ineger 而不是 int

因为 Integer 包装类型允许 null 值&#xff0c;避免在框架底层调用时产生空指针异常所以一般建议使用 Integer转载于:https://www.cnblogs.com/jiasq/p/8588767.html

python 银行工作_Python:银行系统实战(一)

最近突然抽筋想做一下大学时候做过的银行系统实战~代码就发在这里啦~学弟学妹们请查收~不过是python版本的&#xff0c;你们也用不上。。。两个py文件&#xff0c;一个是后台系统处理的&#xff0c;一个是总控py文件如下&#xff1a;view.py 内容如下&#xff1a;import timecl…

出现 java.util.ConcurrentModificationException 时的解决办法

for (int i0; i<list.size(); i) {  // 只有在这种方式遍历集合时&#xff0c;同时对集合增加、删除才不会影响。 // list.remove(list.get(i)); } 在对一个map进行迭代遍历并删除一些符合条件的键值对的时候&#xff0c;容易出现 java.util.ConcurrentModificati…

深入剖析LinkedList:揭秘底层原理

文章目录 一、 概述LinkedList1.1 LinkedList简介1.2 LinkedList的优点和缺点 二、 LinkedList数据结构分析2.1 Node节点结构体解析2.2 LinkedList实现了双向链表的原因2.3 LinkedList如何实现了链表的基本操作&#xff08;增删改查&#xff09;2.4 LinkedList的遍历方式 三、 …

【Mysql优化】索引覆盖

索引覆盖 是指 如果查询的列恰好是索引的一部分,那么查询只需要在索引文件上进行,不需要回行到磁盘再找数据.这种查询速度非常快,称为”索引覆盖”,比平时的查询少一次到磁盘读数据的操作。(索引正好覆盖到查询的数据) 例如下面: mysql> use exam9; Database changed mysql&…

mysql strtok_c函数: strtok 和 strtok_r 详解

函数名: strtok功 能: 查找由在第二个串中指定的分界符分隔开的单词用 法: char *strtok(char *str1, char *str2);程序例:#include #include int main(void){char input[16] "abc,d";char *p;/* strtok places a NULL…

Ubuntu 屏幕亮度调整

首先系统要安装好受限显卡驱动&#xff1b;安装gedit&#xff0c;修改xorg.conf&#xff1a; sudo apt-get install geditsudo gedit /etc/X11/xorg.conf加入红色的一行如下&#xff1a;Section "Screen"Identifier "Default Screen"DefaultDepth 24…

【面试】前端面试题

石墨文档 1.git命令用过哪些 2.css3用过哪些 3.box- sizing 默认值content-box border - box 内容的宽高要从已设定的宽高减去边框和内边距 inherit 从父元素继承 4.跨域 jsonp为什么可以跨域 浏览器为了安全有一种同源策略&#xff0c;协议.域名.端口有一个不同都是跨域&#…

mysql+server+80_Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程

准备篇一、环境说明&#xff1a;操作系统&#xff1a;Windows Server 2019PHP版本&#xff1a;php 7.3.11MySQL版本&#xff1a;MySQL 8.0.18.0二、相关软件下载&#xff1a;1、PHP下载地址&#xff1a;https://windows.php.net/downloads/releases/php-7.3.11-nts-Win32-VC15-…

win7下开启和使用telnet的方法

win7下开启和使用telnet的方法首先&#xff0c;出于安全考虑&#xff0c;win7已经禁用了telnet这一功能&#xff0c;因为telnet是明文传输的&#xff0c;安全性相当差。转载于:https://blog.51cto.com/xinchq2011/727638