【LNMP】提示Nginx PHP “No input file specified”错误的解决办法

原理:

任何对.php文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在。

PHP文件不存在,没办法返回普通的404错误,它返回 一个404,并带上一句”No input file specified”

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

解决办法:

1 打开文件: usr/local/php/etc/php.ini,修改以下配置

  • 把cgi.fix_pathinfo=0           改为    cgi.fix_pathinfo=1
  • 把 ;cgi.force_redirect=1     改为    cgi.force_redirect=0

2 修改文件权限

# cd /home/wwwroot
# chown -R www:www ./*
# chmod -R 755 ./*
# lnmp restart

当执行的时候。如果个别项目里边有 .user.ini 文件。会提示

chown: changing ownership of ‘./www.test.com/.user.ini’: Operation not permitted

这时候需要  进入这个目录  执行

chattr -i .user.ini 

然后 进入到wwwroot目录  , 再执行权限命令,最后别忘了,进入www.test.com 目录,执行

chattr +i .user.ini 

最后重启

lnmp restart

搞定!

补充:Linux chattr 命令,用于改变文件属性。

这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:

  1. a:让文件或目录仅供附加用途。
  2. b:不更新文件或目录的最后存取时间。
  3. c:将文件或目录压缩后存放。
  4. d:将文件或目录排除在倾倒操作之外。
  5. i:不得任意更动文件或目录。
  6. s:保密性删除文件或目录。
  7. S:即时更新文件或目录。
  8. u:预防以外删除。

语法

chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]

参数

  • -R 递归处理,将指定目录下的所有文件及子目录一并处理。
  •   -v<版本编号> 设置文件或目录版本。
  •   -V 显示指令执行过程。
  •   +<属性> 开启文件或目录的该项属性。
  •   -<属性> 关闭文件或目录的该项属性。
  •   =<属性> 指定文件或目录的该项属性。

实例

用chattr命令防止系统中某个关键文件被修改:

chattr +i /etc/resolv.conf
lsattr /etc/resolv.conf

会显示如下属性

----i-------- /etc/resolv.conf

让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:

chattr +a /var/log/messages

原文地址:https://www.cnblogs.com/behindman/p/8642095.html

时间: 2024-11-01 00:12:06

【LNMP】提示Nginx PHP “No input file specified”错误的解决办法的相关文章

运行PHP出现No input file specified错误的解决办法

今天配置了一台新服务器,使用的是IIS + Fastcgi + PHP 5.3.X,在默认网站下运行都是正常的,但是新增一台虚拟主机或网站访问php页面的时候就会报错"No input file specified".按照网上的各种解决方法,如屏蔽doc_root.给目录加权限.修改缓冲池等等都无效. 后来发现一个解决的文档,找着试了确实管用,方法如下: 打开php.ini文件,这个你看你怎么配置的了. 在php.ini文件里面修改: 1.增加一行(这个最重要) fastcgi.imp

nginx下No input file specified错误的解决

在web服务的根目录下创建 .htaccess文件,设置一下内容: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php?s=$1 [QSA,PT,L] 此时刷新即可正常访问! 原文地址:https://www.cnblogs.com/zqunor/p/9114217.html

配置Nginx支持php,出现No input file specified错误的解决方法

今天有一个项目上有一个模块,程序使用php写的,需要的服务器上搭建PHP的环境,由于我公司的服务器都是Windows系列的,本来前两天买了一台新的服务器,上面搭建了IIS服务器,跑的一个ASP的项目,现在又要部署一个PHP的项目,本想直接在IIS上配置让其支持PHP,但一想性能可能不会很高,于是又想用Apache2.2搭建一个环境,这个重量级的有点大,于是又到了Nginx,这个很小的,使用起来很方便,功能是很强大的,配置好后,访问php文件,出现 "No input file specified

YUM安装提示PYCURL ERROR 6 - "Couldn&#39;t错误的解决办法

当编译PHP时出现如下错误时,找不到头绪 这时,打开DNS   vim /etc/resolv.conf   添加一行nameserver 192.168.1.1 完成上一步,则解决该问题 YUM安装提示PYCURL ERROR 6 - "Couldn't错误的解决办法

执行shell脚本时提示bad interpreter:No such file or directory的解决办法

故障现象:在终端直接cd /var正常,在shell脚本中执行则报错.原因是脚本是在windows平台下写的,换行符与Linux不同,造成脚本不能正确执行 出现bad interpreter:No such file or directory(没有那个文件或目录)的原因,是文件格式的问题.这个文件是在Windows下编写的.换行的方式与Unix不一样,但是在vim下面如果不Set一下又完全看不出来. 问题分析:1.将windows 下编写好的SHELL文件,传到linux下执行,提示出错.2.出

nginx php No input file specified 如何处理?

配置nginx支持php 出现了No input file specified ? 只要修改下安装目录下的  nginx.conf下的 location ~ \.php$ { root           html; fastcgi_pass   127.0.0.1:9000; fastcgi_index  index.php; fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name; include        fastcgi

linux/centos安装nginx常见错误及解决办法

1. 安装完成Nginx后无法站外访问? 刚安装好nginx一个常见的问题是无法站外访问,本机wget.telnet都正常.而服务器之外,不管是局域网的其它主机还是互联网的主机都无法访问站点.如果用telnet的话,提示: 正在连接到192.168.0.xxx...不能打开到主机的连接, 在端口 80: 连接失败 如果用wget命令的话,提示: Connecting to 192.168.0.100:80... failed: No route to host. 如果是以上的故障现象,很可能是被

python编码错误的解决办法 SyntaxError: Non-ASCII character &#39;\xe5&#39; in file

[提出问题]. 在编写Python时,当使用中文输出或注释时运行脚本,会提示错误信息: SyntaxError: Non-ASCII character '\xe5' in file ******* ---------------------------------------------------------------------------------------------------------- [分析问题]. -----------------------------------

Python编码错误的解决办法SyntaxError: Non-ASCII character &#39;\xe5&#39; in file

[现象] 在编写Python时,当使用中文输出或注释时运行脚本,会提示错误信息: SyntaxError: Non-ASCII character '\xe5' in file ******* [原因] python的默认编码文件是用的ASCII码,而你的python文件中使用了中文等非英语字符. [解决办法] 在Python源文件的最开始一行,加入一句: # coding=UTF-8(等号换为”:“也可以) 或者 # -*- coding:UTF-8 -*- 转自[http://blog.cs