【问题标题】:Empty services.json file is breaking site空的 services.json 文件正在破坏站点
【发布时间】: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 中一个荒谬的问题。我们在数百台设备上安装了我们的应用程序,这会导致所有单个设备出现问题。有谁知道这个问题的原因,以便我们将来预防?

标签: php laravel laravel-4 composer-php laravel-artisan


【解决方案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)。如果我尝试清除缓存(无论是否强制),都会出现同样的错误。我的头撞墙了!
      猜你喜欢
      • 2010-10-05
      • 1970-01-01
      • 2013-08-17
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 2012-02-14
      相关资源
      最近更新 更多