在自己本地的开发环境突然出现了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解决办法相关推荐

  1. php启动后no input file specified.,nginx+php出现No input file specified解决办法

    今天在自己本地的开发环境突然出现了No input file specified错误,反复检查返现自己的配置文件和配置路径以及权限都没有问题.经过反复的排查终于发现了问题,现将问题及解决分享如下: 问 ...

  2. nginx+passenger下504 Gateway-Timeout问题的解决办法

    nginx+passenger下504 Gateway-Timeout问题的解决办法 关键字: passenger nginx apache gateway timeout ubuntu9.04下,n ...

  3. nginx支持text html,BT面板重启Nginx提示“nginx: [warn] duplicate MIME type “text/html””解决办法...

    很多时候我们在进行了一系列站点优化配置后,经常会出现一些未知的问题.比如虾皮路之前就遇到过了,在BT宝塔面板里面重启Nginx或者重载Nginx的时候,提示"nginx: [warn] du ...

  4. 服务器报错nginx 502 Bad Gateway的原因以及解决办法

    网站页面出现502badgateway怎么办?今天我们来分析一下原因和解决办法. 一.nginx 502 Bad Gateway出现的原因: nginx出现502多数是属于后端的问题,后期就是PHP的 ...

  5. Nginx服务启动失败,错误1067的解决办法

    大家在使用Nginx版更改过配置文件时,启动服务时经常会提示Nginx无法启动1067错误等. 首先大家遇到这种情况不要急,可以肯定的是这种错误的出现都是跟nginx.conf/vhosts.conf ...

  6. nginx平滑升级make upgrade出错的解决办法

    为nginx平滑升级在make upgrate那一步除了点小状况 [root@web01 nginx-1.0.5]# make upgrade /usr/local/nginx/sbin/nginx ...

  7. VUE input唤起键盘 底部固定的标签被顶上去解决办法

    通过输入框的失去焦点事件和点击事件,当出现键盘时把绝对定位的底部文字隐藏,失去焦点(键盘隐藏的时候)显示底部文字 解决代码 <input type="text" class= ...

  8. 表单input中disabled提交后得不到值的解决办法

    转载自:http://blog.csdn.net/u014185140/article/details/51985147 input的字段当为diabled时时无法获取数值得,所以最近不要用这个,我们 ...

  9. nginx出现 500 Internal Server Error的解决办法

    现在越来越多的站点开始用 Nginx ,("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 ...

最新文章

  1. Go 学习笔记(10)— 数组定义、数组声明、数组初始化、访问数组、数组相等、向函数传递数组
  2. 前端学习笔记(五)-JavaScript语法基本概念
  3. samtools 检测bam文件的完整度
  4. samba服务器配置
  5. MySQL主从复制,读写分离配置
  6. Codeplus2017 12月赛——可做题1
  7. 【Kafka】Kafka 2.6新功能:消费者主动触发Rebalance
  8. LA 2957 最大流,最短时间,输出路径
  9. Java动态代理实现(转载\整理)
  10. python微信图标制作_Python十分钟制作属于你自己的个性logo
  11. c/c++常见关键字
  12. JavaScript高级程序设计(第3版).pdf
  13. OKHttp原理讲解之基本概念
  14. 为什么世界是由数学构成的
  15. 基于STM32F030实现RFID射频识别
  16. Hi3516EV200设置手动曝光时间
  17. 网络安全-使用PGP实现电子邮件安全
  18. 邮箱html页面无法显示图片,邮箱内嵌入html页面需要注意的
  19. Flag Engine(动画系统)学习笔记(八)——动画混合
  20. MySQL入门第十天(数据库编程)

热门文章

  1. 拥有一台你的轻量应用服务器Lighthouse
  2. 鹅厂设计师是如何做设计的?
  3. 从生物学的角度浅谈前端工程化
  4. Name Server Daemon (NSD)
  5. nginx启动期做了哪些事
  6. Maven最全教程,还有哪里对maven不解的地方看过来!
  7. 大剑无锋之UNION 和 UNION ALL (SQL)【面试推荐】
  8. 【Java多线程】生产者消费者问题
  9. C++ STL栈Stack的使用
  10. nodejs中使用worker_threads来创建新的线程