Composer で Allowed memory size (メモリ不足)エラー


Composer でインストールする時にメモリ不足のエラーがでることがあります。

$ composer require "laravelcollective/html"
Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.10.10/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

Check for more info on how to handle out of memory errors.MBP:

PHP のメモリ確認

まず現状の PHP のメモリ上限を確認します。

$ php -i | grep memory_limit
memory_limit => 128M => 128M

メモリが 128M になっています。

php.ini ファイルの確認

PHP 設定ファイル php.ini で設定変更するためファイルパスを調べます。

$ php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/7.4
Loaded Configuration File:         /usr/local/etc/php/7.4/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.4/conf.d
Additional .ini files parsed:      /usr/local/etc/php/7.4/conf.d/ext-opcache.ini


php.ini で memory_limit を設定

php.ini ファイルを修正します

$ vi /usr/local/etc/php/7.4/php.ini

メモリ上限の設定 memory_limit を無制限(-1)に設定します

;memory_limit = 128M
memory_limit = -1


$ php -i | grep memory_limit
memory_limit => -1 => -1

Composer コマンドのメモリ指定 

Composer コマンド実行時にメモリ制限を無制限にすることもです。以下は、Composer のアップデート処理で PHP のメモリ上限をなしにした実行です。

$ php -d memory_limit=-1 /usr/local/bin/composer update