首页 > 解决方案 > 运行作曲家更新时出现内存错误

问题描述

错误:

更新 vlucas/phpdotenv (v2.4.0 => v2.5.1):以下异常是由于缺少内存或交换,或者没有配置交换检查 https://getcomposer.org/doc/articles/troubleshooting.md# proc-open-fork-failed-errors 了解详情

目前 AWS Instance RAM:2GB

虽然我们已经通过从 2GB => 4GB 升级 RAM 解决了这个问题,但我毫不怀疑增加 RAM 这不应该是小型站点的解决方案。

请您检查以下几点:

1) Laravel 更新包所需的推荐内存是多少(composar.phar 更新)?

2)在作曲家更新时,laravel 是否也使用 SWAP 内存?

标签: phplinuxlaravel

解决方案


我遇到了同样的问题,一直没有找到原因。您可以运行composer update --profile,甚至composer update --profile -vvv可以查看引擎盖下发生的事情的详细列表。第一个将显示使用了多少内存。

它不应该超过600Mb。但是你仍然会耗尽内存。当 laravel 应用程序进入维护模式时,它不应该添加到它。您可以在第二个 shell 中运行该命令top -ac,看看那里会发生什么。

托管公司也无法帮助我,因为他们将其归咎于我哈哈。

但是有办法解决。上传composer.lock唯一并在生产服务器上运行composer install --no-dev。它会给你一个关于过时包的警告。回答“是”,您的产品服务器将顺利更新。该命令也运行 laravelcomposer.json脚本命令并更新composer.json软件包版本。


推荐阅读