报错 ”No input file specified.“ 排查
背景
今天下午我要和小伙伴一起开发一个 Laravel 的项目,这个项目是我伙伴已经开发了一部分,所有我就克隆了一份到我的电脑上,但是等我配置好,打开网址的提示 ”No input file specified.“ 404错误
排查
-
首先我怀疑是项目源代码的问题,然后我直接在入口文件最前面添加了一句如下;我访问网址还是报同样的错误。
<?php exit(1);
说明不是我项目源代码的问题,排除代码的问题;
-
我开始怀疑是自己环境的问题,于是我就开始折腾了。我把项目删了,又从新开始建一个项目,但是还是不行。我发现只有这个项目是这样的问题。于是我确定不是环境的问题。
说明不是环境的问题,排除环境的问题
-
我百度了一下,有人说可能是 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 0 PHP message: PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0 Unable 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.“的详细内容。更多信息请关注PHP中文网其他相关文章!

Laravel的迁移系统在最新版本中提供了哪些新功能和最佳实践?1.新增了nullableMorphs()用于多态关系。2.引入了after()方法来指定列顺序。3.强调处理外键约束以避免孤立记录。4.建议优化性能,如适当添加索引。5.提倡迁移的幂等性和使用描述性名称。

Laravel的最新版本引入了多个新功能:1.LaravelPennant用于管理功能标志,允许分阶段发布新功能;2.LaravelReverb简化了实时功能的实现,如实时评论;3.LaravelVite加速了前端构建过程;4.新的模型工厂系统增强了测试数据的创建;5.改进了错误处理机制,提供了更灵活的错误页面自定义选项。

SoftleteTeinElelelverisling -Memptry -BraceChortsDevetus -teedeeceteveveledeveveledeecetteecetecetecedelave

laravel10.xisthecurrentversion,offeringNewFeaturesLikeEnumSupportineloQuentModelsAndModersAndImpreverModeModeModelBindingWithenums.theSeupDatesEupDatesEnhanceCodereadability andSecurity andSecurity和butquirecareecarefulecarefulecarefulplanninganninganningalmplementAlimplemplemplemplemplemplempletationForupforupsupflade。

laravelmigrationsStreamLinedAtabasemangementbyallowingbolAlyChemachangeStobEdeDinedInphpcode,whobeversion-controllolleDandShared.here'showtousethem:1)createMigrationClassestodeFinePerationFineFineOperationsLikeCreatingingModifyingTables.2)

要查找最新版本的Laravel,可以访问官方网站laravel.com并点击右上角的"Docs"按钮,或使用Composer命令"composershowlaravel/framework|grepversions"。保持更新有助于提升项目安全性和性能,但需考虑对现有项目的影响。

youshouldupdateTotheLateStlaravelVerverSionForPerformanceImprovements,增强的安全性,newfeatures,BetterCommunitySupport,and long-term-Maintenance.1)绩效:Laravel9'Selover9'seloquentormoptimizatizationenenhanceApplicationsPeed.2)secuse:laravel8InIntrododeDodecter.2)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

SublimeText3汉化版
中文版,非常好用