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;" 给我以下信息:128M 而 php.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 致命错误 [