Redisの拡張機能「php-redis」をインストールする

実行環境
概要
AWSでCakePHP環境を構築する際に、キャッシュサーバーとしてRedisを採用しました。
それに合わせて、php側のRedisの拡張機能であるphp-redisをインストールする必要があったので、その手順を書いておきたいと思います。
php-redisのインストール手順
(1)php-redisライブラリをインストール
まず、今回インストールするphp-redisライブラリがこのままでインストールできるのかを確認します。
今回phpをdnfリポジトリからインストールしたので、php-redisライブラリもdnfリポジトリからインストールしたいと思っているため、以下のコマンドを実行。
dnf list php8.4*
すると、一覧にphp8.4-pecl-redis6.x86_64の記載が。
今回のインストールライブラリとして問題はないので、こちらのライブラリをインストールします。
以下のコマンドでphp-redisをインストールします。
sudo dnf -y install php-pecl-redis
ちゃんとインストールされているか確認。
dnf list --installed | grep php
無事、ちゃんとインストールされていました!
現在、php-redisをインストールしただけなので、こちらの拡張機能を使えるように有効化設定を行います。
正常にインストールされている場合、Redisのiniファイルが作成されているはずです。
phpの拡張機能のiniファイルは、デフォルトだと/etc/php.d/に配置されています。
今回インストールしたphp-redisのiniファイルがあるかどうか確認します。
find /etc/php.d/ -type f -name "*redis*"
すると、redisのiniファイルがありましたので、そのredisのiniファイルに以下の内容を追記します。
extension = redis.so
ここまで対応したら、一旦Apcheの再起動を行います。
(2)phpのバージョンを確認すると・・・RedisでWarningが?!
Apacheを再起動し、phpのバージョン確認を行うと以下のWarningが発生していました・・・
$ php -v
PHP Warning: PHP Startup: Unable to load dynamic library 'redis.so' (tried: /usr/lib64/php8.4/modules/redis.so (/usr/lib64/php8.4/modules/redis.so: undefined symbol: igbinary_serialize), /usr/lib64/php8.4/modules/redis.so.so (/usr/lib64/php8.4/modules/redis.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 8.4.10 (cli) (built: Jul 2 2025 02:22:42) (NTS gcc x86_64)
Copyright (c) The PHP Group
Built by Amazon Linux
Zend Engine v4.4.10, Copyright (c) Zend Technologies
with Zend OPcache v8.4.10, Copyright (c), by Zend Technologies
php-igbinary拡張機能が定義されていないということなのでphp-igbinaryライブラリのインストール&有効化を行いたいと思います。
(3)php-igbinaryライブラリをインストール
php-redisのときと同様、dnfリポジトリからphp-igbinaryライブラリをインストールします。
sudo yum install -y php8.4-pecl-igbinary
そして、php-redisのときと同様、ライブラリの有効化を行い、Apacheを再起動します。
php -vで再度phpのバージョンを確認。

無事、php-redis(php-igbinary)のインストールに成功しました!
おわりに
今まで、エラーに遭遇したときはとりあえずググって・・・から始めていたのですが、
ちゃんとエラーを読んで対応を確認するって本当に大切だと実感しました。
ググって同じエラーメッセージでも、遭遇したケースによって対応法は違いますしね・・・
メッセージが英語だと反射的に身構えてしまうので、英語に対してもっとフレンドリーに向き合えるようにしていきたいですね。