PHP 5.6のDockerイメージにRedisをインストール
なぜ、いまさらPHP5.6というのは置いといて、PHP5.6のDockerイメージにphpredisをインストールしてみたので、そのメモです。
FROM php:5.6-apache
RUN apt update &&\
apt install -y git unzip curl make gcc
WORKDIR /usr/src/php/ext
RUN git clone -b 4.2.0 https://github.com/phpredis/phpredis.git &&\
mv phpredis redis &&\
docker-php-ext-install redis
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" &&\
sed -i -e 's/session\.save_handler.*/session\.save_handler = redis/' $PHP_INI_DIR/php.ini &&\
echo 'session.save_path = tcp://redis:6379' >> $PHP_INI_DIR/php.ini
PHPのセッション
PHPのSESSIONはデフォルトだとファイルシステムが利用されます。
上述の最後の3行でセッションのデータストアにRedisを使うように変更しています。
sed を使っているのでわかりにくいかもしれませんが、php.ini のセッションの設定を次のように変更しています。
session.save_handler = redis
session.save_path = tcp://redis:6379
動作確認
$ docker build -t php .
$ docker run -it --rm php /bin/sh
# php
<?php
$redis = new Redis();
$redis->connect('redis', 6379);
$redis->set('hoge', 'fuga');
echo $redis->get('hoge');
[Ctrl+D]
foge#
$ docker build -t php .
$ docker run -it --rm php /bin/sh
# php
<?php
$redis = new Redis();
$redis->connect('redis', 6379);
$redis->set('hoge', 'fuga');
echo $redis->get('hoge');
[Ctrl+D]
foge#
Author And Source
この問題について(PHP 5.6のDockerイメージにRedisをインストール), 我々は、より多くの情報をここで見つけました https://qiita.com/s_edward/items/7858738746d0781428f7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .