Help us understand the problem. What is going on with this article?

Laravel composer ライブラリインストール時のメモリエラー

目的

  • Laravelで使うライブラリインストール時にメモリ系のエラーを解決した話をまとめる。

問題までの経緯

  1. 下記コマンドを実行してライブラリをインストールしようとした。

    $ 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.
    

問題解決までの経緯

  1. エラーに「このリンク見て!」って書いてあったから当該リングにアクセスしてみる。
  2. リンク先の指示に従い現在の割り当てられている設定のメモリを出力するコマンドを実行してみる。

    $ php -r "echo ini_get('memory_limit').PHP_EOL;"
    
  3. 「128M」と出力された確かにこれだと足りていない。

  4. php.iniファイルで割当メモリ設定を設定できるらしいので下記コマンドを実行してphp.iniファイルを開く。※php.iniファイルの場所は筆者の環境と異なる可能性があるので下記コマンドをただ実行してもphp.iniファイルを開けないかもしれない。(php.iniファイルの場所はこちらの方法で確認可能である→php.iniファイルの場所をターミナルで確認する

    $ sudo vi /etc/php.ini
    
  5. メモリ割り当て設定を無制限である-1に設定し保存して閉じた。

    /etc/php.ini
    ; 省略
    
    ; Maximum amount of memory a script may consume (128MB)
    ; http://php.net/memory-limit
    memory_limit = -1
    
    ; 省略
    
  6. ライブラリインストールのコマンドを再度実行する。

    $ sudo composer require league/flysystem-aws-s3-v3 ~1.0
    
  7. 問題なくインストールする事ができた。

miriwo
web系のバックエンドの知識を習得中! 2019/07/07~毎日更新中
https://miriwo.hatenablog.com/
boomtechcafe
埼玉県の朝霞台を拠点にエンジニアの勉強会、交流会等のイベントを企画しています! 朝霞台駅か北朝霞駅が全然行けちゃうぜってエンジニアの方がいたら是非! もくもく会とかゲーム大会とかもやれたらな~って思ってます。
https://boom-teck-cafe.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away