您好,欢迎访问一九零五行业门户网

痛苦的排错之” No input file specified.“

报错 ”no input file specified.“ 排查背景今天下午我要和小伙伴一起开发一个 laravel 的项目,这个项目是我伙伴已经开发了一部分,所有我就克隆了一份到我的电脑上,但是等我配置好,打开网址的提示 ”no input file specified.“ 404错误
排查首先我怀疑是项目源代码的问题,然后我直接在入口文件最前面添加了一句如下;我访问网址还是报同样的错误。
说明不是我项目源代码的问题,排除代码的问题;
我开始怀疑是自己环境的问题,于是我就开始折腾了。我把项目删了,又从新开始建一个项目,但是还是不行。我发现只有这个项目是这样的问题。于是我确定不是环境的问题。
说明不是环境的问题,排除环境的问题
我百度了一下,有人说可能是 homestead.yaml 的问题,但是我仔细对照了一边,我也没有发现的那里出问题了。于是我就 google 了一下,也没有找到好的原因。
排除虚拟机配置的问题
于是我就再想不是环境的问题,不是程序的问题~~~;最后觉得应该去虚拟机里面看看,最后我在 ngnix 的日志中看到这个错误。
2019/05/23 12:31:44 [error] 5085#5085: *1 fastcgi sent in stderr: php message: php warning:  unknown: open_basedir restriction in effect. file(/home/vagrant/code/haopai-git/public/index.php) is not within the allowed path(s): (/www/wwwroot/dev.guooo.top/:/tmp/:/proc/) in unknown on line 0php message: php warning:  unknown: failed to open stream: operation not permitted in unknown on line 0unable to open primary script: /home/vagrant/code/haopai-git/public/index.php (operation not permitted) while reading response header from upstream, client: 192.168.10.1, server: hp.hopa.cc, request: get / http/1.1, upstream: fastcgi://unix:/var/run/php/php7.2-fpm.sock:, host: hp.hopa.cc
看到上面的错误,我也去网上找,网上主要是说 ngnix 里面配置 fastcgi_param 的问题,但是我觉得不对吧,因为别的项目都没有问题,单单就这个项目有问题。不知怎么了,我就注意到 /www/wwwroot/ 这个东西,我电脑里就不应该有这个文件夹啊,于是我就去项目里查找这个字符串,最后在 .user.ini 这个文件找到了,当我看到这个文件的时候我就意识到是他的问题,我把这个文件里面的配置删了。文件内容如下:
open_basedir=***********
好了,问题解决了。
反思之后回过头来想想,其实一开始就应该想到去看看 ngnix 的日志。之前也接触过 .user.ini 这个文件,那时只记得他是防治跨站攻击用的。
.user.ini 知识点自 php 5.3.0 起,php 支持基于每个目录的 .htaccess 风格的 ini 文件。此类文件仅被 cgi/fastcgi sapi 处理。此功能使得 pecl 的 htscanner 扩展作废。如果使用 apache,则用 .htaccess 文件有同样效果。
除了主 php.ini 之外,php 还会在每个目录下扫描 ini 文件,从被执行的 php 文件所在目录开始一直上升到 web 根目录($_server['document_root'] 所指定的)。如果被执行的 php 文件在 web 根目录之外,则只扫描该目录。
在 .user.ini 风格的 ini 文件中只有具有 php_ini_perdir 和 php_ini_user 模式的 ini 设置可被识别。
更多laravel相关技术文章,请访问laravel教程栏目进行学习!
以上就是痛苦的排错之” no input file specified.“的详细内容。
其它类似信息

推荐信息