baserCMS4.4.6のSession管理にRedisを利用しました。
- baserCMSについて
- Redisについて
- 設定方法
- 実装内容について
baserCMSについて
国産のOSSでウェブサイト管理ツールになります。
詳しくは公式へGO。
Redisについて
インメモリなKeyValue型データベースです。
Qiitaにも【入門】Redisて記事がありますのでGO。
設定方法
流れとしては下記です
- Redisサーバを準備
- Redis用のSessionHandlerを配置
- install.phpに追記
Redisサーバを準備
省きます
Redis用SessionHandlerを配置
githubに実装済みソースがありますので下記に配置してください zip
app/Model/Datasource/Session/RedisSession.php
install.phpに追記
app/Config/install.phpの最後に下記を追記します。
Cache::config('redis', [
'engine' => 'Redis',
'server' => '127.0.0.1',
'port' => 6379,
]);
Configure::write('Session.handler', ['engine' => 'RedisSession']);
serverやportはRedisへのアクセス情報に合わせて変更してください。
実装内容
実装内容として、CakePHP2が利用されたbaserCMSにはフレームワーク側でRedisをキャッシュエンジンとして利用できるライブラリが備わっています。
そのキャッシュエンジンを利用したCakeSessionHandlerInterfaceを実装しているだけです。
install.phpでは、キャッシュエンジンにredisという標準キャッシュとは別のキャッシュ設定を追加しています。
さらに、Session.handlerでCakeSessionHandlerInterfaceを実装したRedisSessionをセッションで利用する指定を行っています。
以上、誰かの助けになれば幸いです。