Posted at

phpのsessionを複数のmemcacheサーバに保存するお話

More than 3 years have passed since last update.

WEBサーバ複数台でセッションを共有したくて

セッションをmemcacheに保存したかったときにはまったお話。



memcaheサーバが複数台だとどう設定したものか。というお話。

はまった点

・phpのsessionの設定場所について

/etc/php.ini

/etc/php.d/memcache.ini

/etc/httpd/conf.d/php.conf

ってな感じで複数個所ある。

んで、僕の環境の場合 mod_php 利用しているため

「/etc/httpd/conf.d/php.conf」の設定が最後に適用されるみたい。(※1)

なのでApache経由で触るだけなら「/etc/httpd/conf.d/php.conf」を編集しておけばOK。

はまったところ

php.iniのみ変更して phpinfo を見ると

master value:memcahe

local value:files



ここでだいぶはまった。

まぁ最終的にPHPのソース内で書き換えました。(※2)


ini_set( 'session.save_handler', 'memcache' );
ini_set( 'session.save_path', 'tcp://host1:11211, tcp://host2:11211' );


引用元

※1

http://qiita.com/takehironet/items/3522a2f38f86d783d01a

※2

http://www.trajectory.jp/tech/php/memcachesession.html