php no input file specified.,nginx+php出现No input file specified解决办法
在自己本地的开发环境突然出现了No input file specified错误,反复检查返现自己的配置文件和配置路径以及权限都没有问题。经过反复的排查终于发现了问题,现将问题及解决分享如下:
问题原因分析
在GitHub上下载了一个开源的tp5项目,之前自己本地的网站运行都没有问题。但是安装了这个开源项目后就发现本地其他网站都无法访问了。访问就是No input file specified错误。在网上也找了解决办法,但是都不是,看来这个错误有点儿诡异。
后来反复尝试,重启电脑后问题得到解决但是再次运行下载的tp5开源项目后其他网站又出现了这样的错误No input file specified 而且只有这一个网站运行没有问题。
据此将错误圈定在该开源项目的nginx配置文件中。再来看看该配置文件:
server {
listen 80;
server_name local.test.com;
access_log /data/wwwlogs/local.test.com.log combined;
error_log /data/wwwlogs/local.test.com_error.log error;
index index.html index.htm index.php;
root /data/php/test;
add_header X-Powered-Host $hostname;
fastcgi_hide_header X-Powered-By;
if (!-e $request_filename) {
rewrite ^/(.+?\.php)/?(.*)$ /$1/$2 last;
rewrite ^/(.*)$ /index.php/$1 last;
}
location ~ \.php($|/){
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
set $real_script_name $fastcgi_script_name;
if ($real_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
}
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param PHP_VALUE open_basedir=$document_root:/tmp/:/proc/;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
access_log off;
error_log off;
expires 30d;
}
location ~ .*\.(js|css)?$ {
access_log off;
error_log off;
expires 12h;
}
在以上的配置中其他都是常规的配置。因为我使用cgi。在fastcgi参数中有一行可能大家也注意到了。
fastcgi_param PHP_VALUE open_basedir=$document_root:/tmp/:/proc/;
就是这句。这句的主要作用是设置fastcgi的可操作目录从而防止跨站的,将open_basedir限定在了本项目的目录和/tmp/以及/proc/中。
问题解决
刚刚说了是在配置的fastcgi配置中多了一句防止跨站的语句。那么这句话他其实是影响了整个fastcgi的参数,这样因为我的其他网站的路径是/data/php/xxx/这样的目录,而不在本开源项目的目录/data/php/test/所以fastcgi就无法找到。
所以在这句之前加#注释这句或者删除这句重启系统或重启nginx就可以了。
线上部署的建议
那么到底要不要使用这句呢?在线上环境中当然是可以的。在线上项目部署中对于open_basedir中最好别使用$document_root这样的变量。如果有多个项目在线上
fastcgi_param PHP_VALUE open_basedir=/wwwroot/:/tmp/:/proc/;
php no input file specified.,nginx+php出现No input file specified解决办法相关推荐
- php启动后no input file specified.,nginx+php出现No input file specified解决办法
今天在自己本地的开发环境突然出现了No input file specified错误,反复检查返现自己的配置文件和配置路径以及权限都没有问题.经过反复的排查终于发现了问题,现将问题及解决分享如下: 问 ...
- nginx+passenger下504 Gateway-Timeout问题的解决办法
nginx+passenger下504 Gateway-Timeout问题的解决办法 关键字: passenger nginx apache gateway timeout ubuntu9.04下,n ...
- nginx支持text html,BT面板重启Nginx提示“nginx: [warn] duplicate MIME type “text/html””解决办法...
很多时候我们在进行了一系列站点优化配置后,经常会出现一些未知的问题.比如虾皮路之前就遇到过了,在BT宝塔面板里面重启Nginx或者重载Nginx的时候,提示"nginx: [warn] du ...
- 服务器报错nginx 502 Bad Gateway的原因以及解决办法
网站页面出现502badgateway怎么办?今天我们来分析一下原因和解决办法. 一.nginx 502 Bad Gateway出现的原因: nginx出现502多数是属于后端的问题,后期就是PHP的 ...
- Nginx服务启动失败,错误1067的解决办法
大家在使用Nginx版更改过配置文件时,启动服务时经常会提示Nginx无法启动1067错误等. 首先大家遇到这种情况不要急,可以肯定的是这种错误的出现都是跟nginx.conf/vhosts.conf ...
- nginx平滑升级make upgrade出错的解决办法
为nginx平滑升级在make upgrate那一步除了点小状况 [root@web01 nginx-1.0.5]# make upgrade /usr/local/nginx/sbin/nginx ...
- VUE input唤起键盘 底部固定的标签被顶上去解决办法
通过输入框的失去焦点事件和点击事件,当出现键盘时把绝对定位的底部文字隐藏,失去焦点(键盘隐藏的时候)显示底部文字 解决代码 <input type="text" class= ...
- 表单input中disabled提交后得不到值的解决办法
转载自:http://blog.csdn.net/u014185140/article/details/51985147 input的字段当为diabled时时无法获取数值得,所以最近不要用这个,我们 ...
- nginx出现 500 Internal Server Error的解决办法
现在越来越多的站点开始用 Nginx ,("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 ...
最新文章
- Go 学习笔记(10)— 数组定义、数组声明、数组初始化、访问数组、数组相等、向函数传递数组
- 前端学习笔记(五)-JavaScript语法基本概念
- samtools 检测bam文件的完整度
- samba服务器配置
- MySQL主从复制,读写分离配置
- Codeplus2017 12月赛——可做题1
- 【Kafka】Kafka 2.6新功能:消费者主动触发Rebalance
- LA 2957 最大流,最短时间,输出路径
- Java动态代理实现(转载\整理)
- python微信图标制作_Python十分钟制作属于你自己的个性logo
- c/c++常见关键字
- JavaScript高级程序设计(第3版).pdf
- OKHttp原理讲解之基本概念
- 为什么世界是由数学构成的
- 基于STM32F030实现RFID射频识别
- Hi3516EV200设置手动曝光时间
- 网络安全-使用PGP实现电子邮件安全
- 邮箱html页面无法显示图片,邮箱内嵌入html页面需要注意的
- Flag Engine(动画系统)学习笔记(八)——动画混合
- MySQL入门第十天(数据库编程)