目的
- Laravelで使うライブラリインストール時にメモリ系のエラーを解決した話をまとめる。
問題までの経緯
-
下記コマンドを実行してライブラリをインストールしようとした。
$ sudo composer require league/flysystem-aws-s3-v3 ~1.0
問題
-
下記のエラーが発生しライブラリをインストールすることができない。
PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223 Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223 Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
問題解決までの経緯
-
エラーに「このリンク見て!」って書いてあったから当該リングにアクセスしてみる。
-
リンク先の指示に従い現在の割り当てられている設定のメモリを出力するコマンドを実行してみる。
$ php -r "echo ini_get('memory_limit').PHP_EOL;"
-
「128M」と出力された確かにこれだと足りていない。
-
php.iniファイルで割当メモリ設定を設定できるらしいので下記コマンドを実行してphp.iniファイルを開く。※php.iniファイルの場所は筆者の環境と異なる可能性があるので下記コマンドをただ実行してもphp.iniファイルを開けないかもしれない。(php.iniファイルの場所はこちらの方法で確認可能である→php.iniファイルの場所をターミナルで確認する)
$ sudo vi /etc/php.ini
-
メモリ割り当て設定を無制限である
-1
に設定し保存して閉じた。/etc/php.ini; 省略 ; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit = -1 ; 省略
-
ライブラリインストールのコマンドを再度実行する。
$ sudo composer require league/flysystem-aws-s3-v3 ~1.0
-
問題なくインストールする事ができた。