【解決方法】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 參數。

好了,以上就是兩個解決方法。思路基本同樣,就是把內存限制打開,一個是永久的,一個是臨時的。你們根據自身需求靈活選擇。

祝你們搬磚順利。

相關文章
相關標籤/搜索