PhpRedisのパッケージインストールをしたい

# これは何？
- これはPhpRedisをインストールする際に悪戦苦闘した記録になります。

# 環境
- AWSのEC2サーバーを使用
    - Amazon Linux2
- PHPのバージョン→7.4.6
- Redisのバージョン→6.3.0
    - PHPやRedisはインストール済みです。

# やってみた
### PhpRedisがあるかを確認

- php74の部分はお使いのものに合わせてください

```bash
yum list | grep php74 | grep redis
```
実行結果
<img width="826" alt="スクリーンショット 2020-06-11 10.18.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316097/3e792007-eb67-ca1b-0b22-227a1e986929.png">

なんだかいい感じにありそうですね。ですが、インストールしたいのはPhpRedisです。少し名前が違うのが気になりますね。
いったん内容を確認します。


### php74-php-pecl-redis5.x86_64とは
``` bash
yum info php74-php-pecl-redis5.x86_64
```

実行結果
<img width="922" alt="スクリーンショット 2020-06-11 10.24.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316097/96fd3b4d-b477-e0a5-29f2-ac0107e07ff7.png">

[結果に示されるリンク](https://pecl.php.net/package/redis)に飛んでみます。
![スクリーンショット 2020-06-11 10.27.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316097/514a7e13-3510-7ba2-4a94-daad2ee40584.png)

さらに[Homepage](https://github.com/phpredis/phpredis/)に飛んでみましょう。
![スクリーンショット 2020-06-11 10.28.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316097/d3e29421-8d9a-b004-6a87-00fa11b2bf03.png)

なんとPhpRedisのGitHubに行くんです。つまり、yumリポジトリにあるphp74-php-pecl-redis5.x86_64はPhpRedisと同一のものになります。

では、PhpRedisをインストールしていきましょう。
ソースビルドする方法もありますが、せっかくパッケージインストールできるようになっているんです。使わない手はないですねw

```bash
yum insatall php74-php-pecl-redis5.x86_64
```

実行結果
<img width="1423" alt="スクリーンショット 2020-06-10 11.25.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316097/f99a581a-6f29-0349-da6c-0ae30b6cc6f6.png">

エラーです。php74-php-pecl-redis5.x86_64を入れるためにパッケージ：**liblzf**が足りないみたいです。

### liblzf
liblzfの[ホームページ](http://software.schmorp.de/pkg/liblzf.html)をみてみます。liblzfはデータ圧縮に関するライブラリのようです。
liblzfのインストール方法を検索してもなかなかヒットしません。yumのリストを見てもそれらしきものは見当たりませんでした。
そこで、[こちら](https://centos.pkgs.org/7/epel-aarch64/liblzf-3.6-7.el7.aarch64.rpm.html)のサイトの以下の画像部分を参考にしました。

![スクリーンショット 2020-06-12 10.23.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316097/03601826-22e0-7926-ccf5-0baa6fafc0bc.png)

画像ではyumではなくrmpを使う方法を紹介されています。そしてどうもepelをインストールしてあることがliblzfのインストールの前提になっているようです。
私の環境にはすでにepelを入れてあります。必要な方はepelのインストールを行いましょう。epelの説明はここでは割愛します。

liblzfをインストールします。

```bash
yum install liblzf --enablerepo=epel
```

実行結果
<img width="1435" alt="スクリーンショット 2020-06-10 12.11.46のコピー.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316097/92dd732f-8661-d131-c318-3e06e5062e4a.png">


### PhpRedisのインストール

liblzfのインストールが完了したら、再度PhpRedisのインストールを行います。

```bash
yum insatall php74-php-pecl-redis5.x86_64 --enablerepo=remi
```
実行結果
いい感じにいけそうですね。
<img width="1435" alt="スクリーンショット 2020-06-10 12.12.15のコピー.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316097/12b583e2-22d4-197d-ae62-6cfcad62125d.png">


### インストール確認
``` bash
yum list installed | grep liblzf
yum list installed | grep redis 
```

実行結果
<img width="817" alt="スクリーンショット 2020-06-10 12.14.39のコピー.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316097/8727ca05-a354-cea3-cd9e-dbb9e8a30a78.png">


# まとめ
- PhpRedisはパッケージでのインストールが可能です。
    - ただし、種々のパッケージ依存問題がありますので、各々の環境に不足しているパッケージのインストールが都度必要になります。私の場合は、liblzfというものでした。
- liblzfのインストール
    - yumリポジトリではなく、epelにあるものだ、というのが今回の落とし穴でした。

# 参考
- [redis](https://pecl.php.net/package/redis)
- [phpredis/phpredis](https://github.com/phpredis/phpredis/)
- [liblzf-3.6-7.el7.aarch64.rpm](https://centos.pkgs.org/7/epel-aarch64/liblzf-3.6-7.el7.aarch64.rpm.html)