问题描述
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 分配的内存不足的问题。
那解决问题的方向也就比较明确了:
1、增加 php 分配的内存
2、取消执行 composer 时的内存限制
以上两个方法,选择一个就可以。
解决方法
具体的解决方法如下:
方法1:增加 PHP 内存
1、查看当前 php 内存配置
$ php -r "echo ini_get('memory_limit').PHP_EOL;"
128M
2、查看 php 使用的配置文件位置
$ 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)
3、修改 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
参数。
好了,以上就是两个解决方法。思路基本一样,就是把内存限制打开,一个是永久的,一个是临时的。大家根据自身需求灵活选择。
祝大家搬砖顺利。