Php致命错误:使用composer安装用户捆绑时内存大小耗尽

Posted

技术标签:

【中文标题】Php致命错误:使用composer安装用户捆绑时内存大小耗尽【英文标题】:Php Fatal error: momory size exhausted when using composer to install user-bundle 【发布时间】:2015-03-20 02:24:16 【问题描述】:

尝试使用 composer 安装 FOSuserbundle 时,我在终端中收到以下消息:“PHP 致命错误:在 phar:///用户/myname/MyWebSite/composer.phar/src/Composer/DependencyResolver/Solver.php 第 177 行"

我该如何解决?


编辑/更多信息

在终端输入:php -r "echo ini_get('memory_limit').PHP_EOL;" 给我以下信息:128Mphp.ini (App/MAMP/conf/php5.4.4/php.ini) 具有以下行:memory_limit = 32M

为什么不同的价值? 如何更改值以便作曲家可以安装捆绑包?

我在终端尝试了以下操作,但出现错误:php -d memory_limit=512M composer.phar/src/Composer/DependencyResolver/Solver.php 错误 ==> 无法打开输入文件:composer.phar/src/Composer/DependencyResolver/Solver.php

【问题讨论】:

看看这个getcomposer.org/doc/articles/troubleshooting.md composer 是一个存档,不仅仅是一个文件,它是一个自包含的应用程序,用 PHP 编写,包含在一个 phar 存档中 (cf the PHAR extension) @批量。我尝试了以下行(另请参阅我在主要问题中的编辑)php -d memory_limit=512M composer.phar/src/Composer/DependencyResolver/Solver.php 但这不起作用。如何更改 memory_limit? 512M应该设置哪个值? 我已经回答了这个问题***.com/a/28068875/4098311 我将 php.ini memory_limit 从 32M 更改为 42M 并在终端中更新 composer.phar 时收到相同的消息。 【参考方案1】:

Composer 应在至少 1 GB 的允许和可用内存的情况下运行。如果您的机器物理安装的内存较少,您应该考虑升级或使用不同的机器 - 否则该过程将开始交换并花费大量时间,因此应该在不到一分钟内完成的事情需要几天时间。

如果您无法提高 PHP 的内存限制,那么您很不幸。 Composer 在更新时需要一些庞大的数据结构。

【讨论】:

【参考方案2】:

我过去通过简单的使用解决了这个问题:

php -d memory_limit=1G /usr/local/bin/composer update --prefer-dist --no-dev

no-dev 也可能有助于减少内存占用 - 当然是速度。

【讨论】:

以上是关于Php致命错误:使用composer安装用户捆绑时内存大小耗尽的主要内容,如果未能解决你的问题,请参考以下文章

Composer 致命错误:声明 Fxp... 必须与第 334 行的 ...AbstractAssetsRepository.php 兼容

无法执行 php artisan 命令 [php 致命错误 [

使用PHP中的“use”命令和Composer包

Composer 要求内存不足。 PHP致命错误:允许的内存大小为1610612736字节已用尽

删除捆绑包后的 symfony 致命错误

运行 php artisan serve 命令时,laravel 无法打开流致命错误