composer requireしたらメモリ制限超えてるって怒られた

2 min

Laravel/uiをrequireしようとしたら、下のようなメッセージが出てきて怒られてしまいました。

$ composer require laravel/ui
PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

原因と対応

原因は書いてある通り、許容されたメモリじゃ足りなくて処理できませんでしたよってことなんですが。

php.iniに設定されているメモリ制限を変えてやるか、その処理だけメモリ制限を無視してやるかで対応できます。

恒久的な対応としてはphp.iniを編集してメモリ制限を引き上げてやることなんですが、できるだけ初期値はいじりたくない場合もありますよね。

そんな時はコマンド実行時にだけ制限値をパスするようにしましょう。

一時的にメモリ上限を無視する

お手軽に済ませたい場合はこちら。

実行したいコマンドの前に以下のおまじないを付け加えます。

$ COMPOSER_MEMORY_LIMIT=-1

memory limitを-1(無制限)にするという、見たままのおまじないですね。

今回の場合だとこう。

$ COMPOSER_MEMORY_LIMIT=-1 composer require laravel/ui

これで実行できるはずです。

毎回コマンドを打つのめんどくさいとか、設定値を変えたいんだって時はphp.iniを編集しましょう。

php.iniを編集

php.iniの場所は以下のコマンドで確認できます。

$ php --ini | grep php.ini

これを実行すると、こんな感じでパスがわかりますね。

Configuration File (php.ini) Path: /etc/php/7.4/cli
Loaded Configuration File:         /etc/php/7.4/cli/php.ini

パスが確認できたので、編集してやりましょう。

以下のパスは上で確認した状態のもの

$ vi /etc/php/7.4/cli/php.ini

エディタが開いたら、検索モードでメモリ制限の項目(memory_limit)を探し、書いてある数字をINSERTモードで書き換えましょう。

memory_limit = 【お好みの容量】

上書き保存してエディタを抜けたら再びコマンドを実行してみます。

$ composer require laravel/ui

今度はちゃんと実行できました。

さいごに

php.iniのメモリ制限は今回の件に限らずよく引っかかるので、解決方法として覚えておくといいかもしれませんね。

未経験からITエンジニアになりました!

今までは趣味としてプログラミングを独学してきたけど、やっぱりこれを仕事にしたい……!

そう思い立ったはいいものの、世間の情勢などもあり未経験でのエンジニア職の中途採用が絶望的な状況

大手転職エージェントを通して何社も面接を受けては落ちてを繰り返し、諦めかけていたのですが……。

気分転換で登録した転職サービスで、とある企業から内定をいただくことができました

同じように未経験からITエンジニアを目指している方へ、どんなに厳しくても可能性がゼロではないことを伝えたい。

ポイントは、IT業界に精通した転職サービスを利用すること。
これだけで少なくとも面接へ進める可能性がグッと高くなります。

あなたがもしIT特化の転職サービスに未登録で苦しんでいるなら、ぜひ利用してみてください。きっと可能性が広がりますよ!

\無料のIT系転職サービス/

はるしか

はるしか

ゲーム・漫画・クルマ・ガジェットなど多趣味な雑食系。
モノづくりが楽しくてプログラミングをポチポチしてたら本業エンジニアになってしまったASPの中の人。
動物占いは子鹿。
忘れっぽい自分へのメモ代わりの記事が多めです。

FOLLOW

カテゴリー:
関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です