LoginSignup
2
1

More than 3 years have passed since last update.

memory_limitをmacで編集する方法【エラー: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】

Last updated at Posted at 2020-11-19

ある日にcomposer requireすると、エラーが表示

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

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.% 

memoryがいっぱい?
macの容量、メモリ共に空いていますけど??

調べてみると、

php.iniに記載されている、memory_limitが上限に達したようだ。
デフォルトだと128MBが設定されているので、それを更新させる必要がある。

php.iniを作成

macにはphp.ini.defaultというファイルが存在し、これをコピーで複製して、設定を変えて改善させます。

ファイルの場所は/private/etc/php.ini.defaultです。
コマンドで確認したい場合は、

php -i | grep php.ini 

で確認できます。

なので、これをコピーしてphp.iniを作成しましょう。

sudo cp -p /etc/php.ini.default /etc/php.ini

でphp.iniを作成します。

容量の変更

現在のメモリーを確認するコマンドを実行しましょう。

コマンド
$ php -i | grep memory_limit
memory_limit => 128M => 128M 

128Mと分かります。
これを変更したいので、

vim /etc/php.ini

memory_limitを見つけて変更します

容量の上限を上げる
memory_limit = 528M
容量を無制限にする
memory_limit = -1

保存時にエラーが発生する

[vim]read only

と表示されて、:wqで保存できません。

そこで、

:w !sudo tee %を手入力して実行

画面に変化が現れますので、さらに

vim画面から脱するために

:q!で終了します。

確認

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

これで反映されたことが分かります。

改めてcomposerを実行すると、

Package manifest generated successfully.

とインストールに成功したことが分かります。
これで解決です

その他

調べると他の方法もあるようです。

コマンド
$ composer update

でエラーが出た場合、

コマンド
$ php -d memory_limit=512M composer update

php -d memory_limit=512Mをつけることで実行可能みたいです。

composer requireだと

$ php -d memory_limit=-1 composer.phar require ~

と記述することで実施可能みたいです。

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1