😸

peclでredisをインストールして使ってみる

に公開

👶はじめに

こちらは、PHP(Laravel)ユーザー向けの記事となっております🔥

pecl install redis というコマンド、何してるんだろ、、
そもそも PECL って何????PHP拡張ってアプリと何が違うの????

そんな初学者の方に向けて、DockerとLaravel開発にも役立つように
PHPの拡張」と「PECL」についてわかりやすくまとめました!

PECLとは何か?

**PECL(PHP Extension Community Library)は、
PHPの拡張モジュールを、探して・ダウンロードして・インストールしてくれるツール

って言われてもわからない場合、この記事で優しく解説します👇

「拡張モジュール」とは何か?

PHPは「標準の機能」だけだと、
できることが限られています。

でも、「もっと便利にしたい」「難しいことをしたい(高速通信、暗号化など)」🔥

そんなときに「追加機能」をインストールすることで、PHPに新しい力を与える仕組みがあります。
それが「拡張モジュール(extension)」です。

💡 たとえるなら:

PHP本体が「スマホ本体」
拡張モジュールが「アプリ」です。

例え
PHP本体 電話、カメラ、計算機など最低限の機能
拡張モジュール YouTube、LINE、Instagram など追加機能

✅ 拡張モジュールの例:

機能 拡張名 説明
Redis操作 redis Redisというデータベースと高速に通信できる
デバッグ xdebug 変数の中身や関数の流れを追えるようになる
gRPC通信 grpc 高速なAPI通信ができるようになる
zip操作 zip zipファイルの圧縮・展開ができるようになる

✅ 「PECL」とは?

PHP用の拡張モジュールを
「簡単に見つけて」「簡単にインストールする」ためのツールです。

☁️ イメージ ☁️
PECL → 拡張モジュールを売っている「アプリストア」
pecl install redis → スマホで「LINEをインストール」する操作

PECLの使い方(基本)

pecl install redis

このように pecl install コマンドを使うだけで、拡張モジュールが導入できます。

PHPコードで Redis を使いたい場合は、PECLで拡張を入れておかないと動きません👇

$redis = new Redis();
$redis->connect('localhost', 6379);
$redis->set('key', 'value');

整理

項目 内容
拡張モジュールとは? PHPに機能を追加する「アプリ」的なもの
PECLとは? その「アプリ」を探して、インストールできる公式仕組み
なぜ必要? PHPに標準で入ってない機能を使いたいとき
どう使う? pecl install xxxx で入れる

Dockerでpeclを使う

Dockerfileでpeclを使用して拡張モジュールのredisをインストールしてみましょう!

Redisは「とても高速なデータの一時保管庫」です。
データをメモリ上に保存するため、通常のデータベースより圧倒的に速く
キャッシュ、セッション、ランキング、リアルタイム通知などに最適です

⚠️注意点

  • peclを使うには、php-pear や php-dev のようなビルドに必要なパッケージが必要です。
  • redisをインストールしたら有効化が必須です。

✅ docker-php系(公式php-fpmイメージ)の場合

FROM php:8.3-fpm

# 基本ツールのインストールをしておく

# peclでredisインストール
RUN apt-get update && apt-get install -y \
    php-pear php-dev \
    && pecl install redis \
    && docker-php-ext-enable redis

docker-php-ext-enable redis で自動で有効化される便利な仕組み!

✅ UbuntuベースのDockerfileの場合

FROM ubuntu:22.04

# 基本ツールのインストールをしておく

# peclでredisインストール
RUN apt-get update && apt-get install -y \
    php-pear php8.3-dev \
    && pecl install redis \
    # redisの有効化(2つのiniディレクトリに設定が必要)
    && echo "extension=redis.so" > /etc/php/8.3/cli/conf.d/20-redis.ini \
    && echo "extension=redis.so" > /etc/php/8.3/fpm/conf.d/20-redis.ini

Ubuntuベースでは .iniファイル を自分で追加して有効化が必要です

CLI(コマンド用)と FPM(ブラウザ経由)で設定ファイルが違う点に注意して以下の手順で確認してみよう

有効化されているかを確認する方法

php -m | grep redis        # CLI(artisanなど)用
php-fpm8.3 -m | grep redis # FPM(ブラウザから)用

✅ redis が出れば、有効化OK!

CLI と FPM の設定は別ファイル!

以下のコマンドで、CLIとFPMが読み込んでいる設定ファイルを確認できます

php --ini
php-fpm8.3 -i | grep ini

結果を見て、読み込んでいる設定ファイルが異なる場合👇
両方のconf.d/に redis.iniファイル を作る必要があります。

php --ini
# => /etc/php/8.3/cli/conf.d/

php-fpm8.3 -i | grep ini
# => /etc/php/8.3/fpm/conf.d/

20-redis.ini の「20」って何?

.iniファイル の 読み込み順序をコントロールするための慣習的な番号!
数字が小さいほど先に読み込まれます。

20-redis.ini, 99-redis.ini でも機能は変わらないが、整理のため一般的に20がよく使われます🏃‍♀️

redisサーバー用のコンテナ定義

ymlファイルで以下のコンテナ定義を追加する👇

  redis:
    image: redis:7.2
    ports:
      - "6379:6379"

これで Redis サーバーの準備は完了!

Redis用の .env の設定

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
REDIS_CLIENT=phpredis
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=null

Laravelで Redis を使うには、.env に上記を設定し、以下を実行しましょう👇

php artisan config:cache

🧠 まとめ

項目 内容
PECLとは? PHPの拡張を簡単にインストールできるツール
拡張モジュールとは? PHPにあとから機能を追加できる仕組み
Dockerでの注意 php-devやphp-pearのインストールが必要
redisの有効化 .iniファイルに extension=redis.so を書く(CLIとFPM両方)
有効か確認 php -m / php-fpm -m で確認可能

これで pecl install redis の意味が「なんとなく」じゃなく「ちゃんと」理解できましたね!💡
Laravel×Redis開発に自信を持って使っていきましょう!

参考記事

DockerでPHP/laravelの環境を作る時によく使われるコマンド pecl install や docker-php-ext-install について

【キャッシュ利用】phpredisを使ってPHPからRedisにアクセス

Discussion