【解决方法】PHP Composer - Fatal error: Allowed memory size of xxx bytes exhausted

问题描述

composer 安装扩展,以前就常常出现失败的状况,也没在乎,从新跑就完了。php

此次报了上面标题的错误,具体内容以下:composer

$ php composer.phar install                      
Loading composer repositories with package information
Updating dependencies (including require-dev)

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 32 bytes) in phar:///xxx/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.%

问题分析

从上面的错误信息能够看出,应该是 PHP 分配的内存不足的问题。ui

那解决问题的方向也就比较明确了:spa

一、增长 php 分配的内存code

二、取消执行 composer 时的内存限制orm

以上两个方法,选择一个就能够。内存

解决方法

具体的解决方法以下:ci

方法1:增长 PHP 内存

一、查看当前 php 内存配置get

$ php -r "echo ini_get('memory_limit').PHP_EOL;"       
128M

二、查看 php 使用的配置文件位置it

$ php --ini                                     
Configuration File (php.ini) Path: /Applications/MAMP/bin/php/php5.6.40/conf
Loaded Configuration File:         /Applications/MAMP/bin/php/php5.6.40/conf/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

三、修改 php.ini 文件,修改其中的配置项 memory_limit,好比:1024M-1 等,-1 表示无限制

memory_limit = -1

OK,别忘了重启 php 服务。

方法2:临时取消内存限制

执行以下指令:

$ php -d memory_limit=-1 composer.phar install

即,增长了 -d memory_limit=-1 参数。

好了,以上就是两个解决方法。思路基本同样,就是把内存限制打开,一个是永久的,一个是临时的。你们根据自身需求灵活选择。

祝你们搬砖顺利。

相关文章
相关标签/搜索