运行作曲家更新时出现内存错误

时间:2018-10-23 05:56:31

标签: php linux laravel

错误:

  

更新vlucas / phpdotenv(v2.4.0 => v2.5.1):以下异常   是由于内存不足或交换,或未配置交换引起的   校验   https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors   详情

当前AWS实例RAM:2GB

尽管我们已通过将RAM从2GB升级为4GB来解决了此问题,但我毫不怀疑,因为增加RAM并不是解决小型站点的方法。

请检查以下几点:

1)Laravel建议用于更新软件包(composar.phar更新)的内存是多少?

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

2 个答案:

答案 0 :(得分:1)

理想情况下,composer update仅在您的开发环境中运行,当您在AWS服务器中推送代码时,您必须使用的命令是composer install(不会占用太多内存)。 / p>

如果您想知道updateinstall之间的区别,请参考以下链接:What are the differences between composer update and composer install?

答案 1 :(得分:1)

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

不应超过600Mb。但是仍然会耗尽内存。当laravel应用进入维护模式时,不应添加它。您可以在第二个外壳中运行命令top -ac,然后查看在那里发生的情况。

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

但是有办法解决。仅上载composer.lock,然后在生产服务器上运行composer install --no-dev。它将给您有关过期软件包的警告。回答“是”,您的产品服务器将无故障更新。该命令也运行laravel composer.json脚本命令并更新composer.json软件包版本。