Predisとは?
こちらのサイトによると
「Predisはオープンソースの Redis クライアントライブラリで、MITライセンスのもとで公開・開発されています。
Predis を利用するメリットとしては、PredisはピュアPHPのライブラリであり、特別な設定などが必要ないことがあります。 Composer などのパッケージ管理ソフトウェアでインストールすることができます。」
前提条件
PHP -v7.2
Laravel -v5.5
Amazon linux
mysql -v5.5
インストール方法
下記内容でpredisライブラリをインストールしようとした。
# プロジェクトのディレクトリに移動
$ cd /var/www/html/laravel-sample
# predisインストール
composer require predis/predis
そうするとcomposer require predis/predis
で、下記エラーが発生
Installation failed, reverting ./composer.json to its original content.
The following exception is caused by a lack of memory or swap, or not having swap configured
Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details
[ErrorException]
proc_open(): fork failed - Cannot allocate memory
どうやらメモリが不足していてるらしい。
proc_open(): fork failed - Cannot allocate memory の解決法の記事によると下記コマンドでスワップファイル領域を確認とのこと。
$free -m
total used free shared buff/cache available
Mem: 983 109 707 7 166 725
Swap: 0 0 0
下記コマンドでスワップファイルの領域を作成。
# swap用のファイル作成
$ sudo /sbin/mkswap /var/swap.1
mkswap: /var/swap.1: パーミッション 0644 は安全な値ではありません。 0600 をお勧めします。
# パーミッションを600に変更
$sudo chmod 600 /var/swap.1
$sudo /sbin/mkswap /var/swap.1
$sudo /sbin/swapon /var/swap.1
準備を整えてpredisインストールコマンドを打つ。
$ composer require predis/predis
その際下記のような警告文が出てくるが、Laravelでcomposer updateするとPackage jakub-onderka/php-console-color is abandoned, you should avoid using it. Use php-parallel-lint/php-console-color instead.の記事によると警告解消に向けて対応中で、今の所放置していいそうだ。
Package jakub-onderka/php-console-color is abandoned, you should avoid using it. Use php-parallel-lint/php-console-color instead.
Package jakub-onderka/php-console-highlighter is abandoned, you should avoid using it. Use php-parallel-lint/php-console-highlighter instead.
Package jeremeamia/SuperClosure is abandoned, you should avoid using it. Use opis/closure instead.
Package mtdowling/cron-expression is abandoned, you should avoid using it. Use dragonmantank/cron-expression instead.
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
参考
https://weblabo.oscasierra.net/php-predis-1/
https://qiita.com/oitakazuki/items/9093d9ca4a341d2d6c4b
https://www.checksite.jp/ec2t2-add-swapfile/
https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors
https://qiita.com/nasubi987/items/8c49bc3e5ec0df45f776