原理:

任何对.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

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

  1. Nginx+PHP “No input file specified”错误的解决办法

    配置官网商城php网站时候,界面报错“No input file specified” 原理: 任何对.php文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在. PHP文件 ...

  2. nginx下No input file specified错误的解决

    在web服务的根目录下创建 .htaccess文件,设置一下内容: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond % ...

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

    执行shell脚本时提示bad interpreter:No such file or directory的解决办法 故障现象:在终端直接cd /var正常,在shell脚本中执行则报错.原因是脚本是 ...

  4. 织梦CMS提示DedeTag Engine Create File False错误的解决办法总结

    今天帮客户升级站点,遇到了一个老问题,生成栏目的时候提示"DedeTag Engine Create File False",突然发觉这个问题竟然在以前做站的时候困扰过我多次,于是 ...

  5. 执行Hive时出现org.apache.hadoop.util.RunJar.main(RunJar.java:136) Caused by: java.lang.NumberFormatException: For input string: "1s"错误的解决办法(图文详解)

    不多说,直接上干货 问题详情 [kfk@bigdata-pro01 apache-hive--bin]$ bin/hive Logging initialized -bin/conf/hive-log ...

  6. YUM安装东西提示PYCURL ERROR 6 - "Couldn't错误的解决办法

    执行yum install命令时提示PYCURL ERROR 6 - "Couldn't resolve host 错误,原来是dns设置出错,具体错误代码:  Loaded plugins ...

  7. vetur插件提示 'v-for' directives require 'v-bind:key' directives.错误的解决办法

    在用vscode编写vue代码时,因为安装的有vetur插件,所以当代码中有v-for语法时,会提示 [vue-language-server] 'v-for' directives require ...

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

    故障现象:在终端直接cd /var正常,在shell脚本中执行则报错.原因是脚本是在windows平台下写的,换行符与Linux不同,造成脚本不能正确执行 出现bad interpreter:No s ...

  9. Error:/etc/fstab:Read-only file system错误的解决办法

    1.挂载60T存储,设置开机自动挂载,UUID编号配置错误导致系统无法启动 2.根据提示进入维护状态,输入root密码,进入fstab删除UUID等内容,结果报错     Error:/etc/fst ...

随机推荐

  1. css - Grid网格布局

    .wrapper{ display: grid; grid-template-columns: 100px 100px 100px; grid-template-rows: 100px 100px 1 ...

  2. vc写的dll被mingw的g++编译引用

    dll.cpp,用vc2017编译 #include <iostream>#include <windows.h> extern "C" __declspe ...

  3. 在Android源码中查找Java代码中native函数对应的C++实现

    Android源码中很多关键代码都是C++实现的,java通过jni来调用,经常会看到java中这样的代码: static native Thread currentThread(); 如何根据方法名 ...

  4. TIScript 代码Demo

    var filelist = null; function alert(msg) { view.msgbox(null,msg); } self.on("click", " ...

  5. Tif文件合并类

    using System; using System.Collections; using System.Collections.Generic; using System.Drawing; usin ...

  6. .NET Core下的Socket示例.

    About.schtml中的代码 @{ ViewData["Title"] = "About"; } <h2>@ViewData["Tit ...

  7. [No0000129]WPF(1/7)开始教程[译]

    概要 在我使用了半年多 WPF 后,是时候写点关于 WPF 基础方面的东西了.我发表了一系列针对具体问题的文章.现在是到了让大家明白为什么说WPF是一款在界面开发上带来革命的产品了. 本文针对初级-中 ...

  8. Srt字幕文件解析

    // // ViewController.m // 字幕解析 // // Created by admin on 2018/8/30. // Copyright © 2018年 admin. All ...

  9. arcengine右键实现new group layer的功能

    没有找到相关方法,但是有对图层组进行操作的资料. https://gis.stackexchange.com/questions/43620/how-do-i-reach-a-layer-inside ...

  10. iOS程序main函数之前发生了什么

    我是前言 一个iOS app的main()函数位于main.m中,这是我们熟知的程序入口.但对objc了解更多之后发现,程序在进入我们的main函数前已经执行了很多代码,比如熟知的+ load方法等. ...