浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

Composer で “Fatal error: Allowed memory size…”が出た時の対策方法

新しくサーバーを構築して既存プロジェクトをコピーした際などに、composer installやcomposer updateをすると

PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer.phar/src/Composer/DependencyResolver/Solver.php on line 220

のようなエラーが出ることがあります。

これはComposerが必要とするメモリ容量よりもphp.iniなどの設定で指定されているPHPが利用できる最大メモリ容量(memory_limitの値)が少ないために発生します。

もちろん、あまりに少ない場合はアプリケーションそのものがうまく動作しなくなるため、ある程度の容量は確保するべきですが、composerの場合は場合によってはさらに多くのメモリを必要とする場合があります。

とはいえ、アプリケーションが使用する以上のメモリ容量をComposerのためだけに割り当てるように設定を変更するのも微妙です。

そこで、Composerを利用するときだけ、一時的にメモリ上限を解除するのがよさそうです。

具体的には、composerを実行する際に次のように指定します。

php -d memory_limit=-1 /usr/local/bin/composer サブコマンド

こうすることで、このコマンドを実行したときに限り、メモリ上限を無効に(マシンに搭載されているRAM容量の上限まで利用)することができます。

上記のコマンドを毎回打つのがめんどくさい…という方は、ログインユーザーの ~/.bashrc などにaliasを記述しておくのがおすすめです。

alias composer='php -d memory_limit=-1 /usr/local/bin/composer'

参考サイト:

composer updateでmemoryが足りない場合の対応方法 – polidog lab++

  • この記事いいね! (0)