有时候安装好了LNMP环境,测试访问php页面时候报错“No input file specified”。F12查看,可以看到报错404找不到页面。
原理:
任何对.php文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在。PHP文件不存在,没办法返回普通的404错误,它返回 一个404,并带上一句”No input file specified”
我们只要修改下nginx虚拟主机的配置文件即可,关键部分如下:
location ~ .php$ {
root /home/wwwroot/default;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
# 方法1
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
# 方法2
#include fastcgi.conf;
}
上面的方法1 和方法2都行,启用任意一个即可(实际上fastcgi.conf里面就是比fastcgi_params里面多了一行代码,感兴趣的自己可以看下)
然后保存重启nginx即可正常访问php页面了。