空的 services.json 文件正在破坏站点
Posted
技术标签:
【中文标题】空的 services.json 文件正在破坏站点【英文标题】:Empty services.json file is breaking site 【发布时间】:2016-01-19 05:16:30 【问题描述】:我收到了
哎呀,好像出了点问题。
在我的生产服务器上。
突然之间,没有工匠命令在起作用。我在/bootstrap/compiled.php:4496
上遇到错误。
删除 compiled.php 后,我收到相同的消息
“array_merge(): Argument #2 is not an array” in /vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository".php:188.
我的 services.json 文件是空的,当我尝试 PHP artisan cache:clear
时,我收到相同的错误消息。
有人知道我接下来可以尝试什么吗?提前致谢
【问题讨论】:
如果services.json
很重要,请尝试将[]
放入其中
ProviderRepository.php line 188
的代码是什么?
它在 services.json 中读取。如果 services.json 不存在,那么它应该创建它。但是,它无法创建它并留下一个空文件。
如果我把 [] 放在 services.json 中,那么它会抛出“未定义索引”的错误。问题是 services.json 文件没有被正确创建。
这是 Laravel 中一个荒谬的问题。我们在数百台设备上安装了我们的应用程序,这会导致所有单个设备出现问题。有谁知道这个问题的原因,以便我们将来预防?
【参考方案1】:
您是否尝试过删除您的供应商 + /bootstrap/compiled.php
和您的 service.json
,然后尝试使用 composer install
再次重新安装 laravel?
【讨论】:
【参考方案2】:看起来我们的服务器空间不足。这就是它无法写入文件的原因。
【讨论】:
【参考方案3】:当 Laravel 在没有调试选项的情况下投入生产时,此消息会显示“哎呀,看起来出了点问题。”,你可以编辑你的 .env 行
APP_DEBUG=false
到
APP_DEBUG=true
然后你会看到错误(有更多关于错误的信息)你会知道如何修复。
从 bootstrap/cache 中删除 services.json 解决了这个问题。 来源:https://laracasts.com/discuss/channels/laravel/update-to-51-and-array-merge-argument-2-is-not-an-array
【讨论】:
我给出了错误。 “array_merge(): 参数 #2 不是数组”在 /vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository".php:188. 这是 laravel 4.2,而不是 5.1。如果我删除 /app/storage/meta 中的 services.json,它只会重建空文件(0 字节)。错误仍然存在。 删除后是否重新运行composer?作曲家转储自动加载和作曲家更新。链接上的答案也是关于 laravel 4。 是的。我做了这一切。谢谢 当我调用 'php composer.phar update' 时,更新会运行,但一旦它调用了 artisan 命令,我就会收到 ProviderRepository.php 错误(artisan clear-compiled,artisan optimize)。如果我尝试清除缓存(无论是否强制),都会出现同样的错误。我的头撞墙了!以上是关于空的 services.json 文件正在破坏站点的主要内容,如果未能解决你的问题,请参考以下文章
将 google-services.json 提交到 GitHub
添加 Django 站点会破坏我在 CentOS 7 上的虚拟主机
Laravel 4.2 services.json 文件在主机根目录下创建