为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 作曲家耗尽内存......为什么?怎么了?

PHP 作曲家耗尽内存......为什么?怎么了?

PHP
慕盖茨4494581 2023-06-18 18:03:15
尝试初始化 PHP/Laravel 项目(通过运行composer install),我试图通过尝试升级有问题的包来升级与较新的 PHP 版本交互不佳的包composer require,但它并不顺利:$ composer require sentry/sentry-laravel:1.8.0./composer.json has been updatedLoading composer repositories with package informationUpdating dependencies (including require-dev)PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.10.7/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.10.7/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.我在文档中阅读了如何增加内存限制(是的 - 最简单的方法是COMPOSER_MEMORY_LIMIT在运行之前设置环境变量,composer就像很多人提到的那样),但在我这样做之前,我想了解项目耗尽 1536Mb 是否有问题内存限制,如果是这样,如何理解和解决问题?更具体地说,除了替换文件中的版本要求之外,这个命令还能做什么composer.json?如果我只是手动编辑composer.json文件并compose install从干净的表运行(在擦除vendor/目录和写入项目目录的任何其他内容之后),可能会出现什么问题 - 版本是否会与检测到的其他依赖项冲突?
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

更具体地说,除了替换文件中的版本要求之外,这个命令还能做什么composer.json

它还尝试安装新版本的依赖项,为此它需要检查这是否可行(新版本不与其他依赖项冲突)以及还需要做什么(安装/升级子依赖项)。实际上,这意味着完全重建依赖树,这是一个复杂的过程,需要大量的内存。

手动编辑composer.json不会给你任何东西,因为它不会安装这个依赖项。您仍然需要运行composer update才能执行此操作,这将需要重建依赖树并导致与require命令相同的内存问题。


查看完整回答
反对 回复 2023-06-18
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

当我遇到这样的问题时,我暂时让composer无限内存:

COMPOSER_MEMORY_LIMIT=-1 composer require sentry/sentry-laravel:1.8.0


查看完整回答
反对 回复 2023-06-18
?
哔哔one

TA贡献1854条经验 获得超8个赞

尝试删除您的供应商文件,然后继续 composer install



查看完整回答
反对 回复 2023-06-18
  • 3 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信