※ ChatGPTを利用し、要約された質問です(原文:memcachedを使った2サーバ間セッション同期)
memcachedを使った2サーバ間セッション同期
このQ&Aのポイント
memcachedを使用して2つのサーバ間でセッションを同期する方法を教えてください。
CentOSでLAMP環境を構築しており、memcachedとphp-peclのモジュールをインストール済みです。設定の方法を教えてください。
セッションの保存は各サーバで成功しているが、同期されていない状態です。どのように解決すればよいでしょうか。
memcachedを使った2サーバ間セッション同期
お世話になります、表題の件で
ネットで調べた情報を試しましたが、私の環境では同期が出来ませんでした
なにか足りない設定等ございますでしょうか
ベテランの方お教えいただけると幸いです
■サーバ情報
CentOS LAMP 192.168.0.3
CentOS LAMP 192.168.0.4
■1.memcachedとphp-peclのモジュールを両サーバにインストール
# yum install memcached
# yum install php-pecl-memcache
2.両サーバphpの設定変更
# vi /etc/php.ini
以下コメントアウト
;session.save_handler = files
;session.save_path = "/var/lib/php/session"
3.両サーバmemcachedの設定ファイル最後に以下を追加
# vi /etc/php.d/memcache.ini
session.save_handler = memcache
session.save_path = "tcp://192.168.0.3:11211, tcp://192.168.0.4:11211"
4.PHPファイルを同一フォルダに配置
同一URLでIPの振り分けはwindowsのhostsで操作
クライアント機:windows7 ult
☆192.168.0.3
session_start();
$_SESSION['abc'] = '出来るかな?';
echo $_SESSION['abc'];
結果 出来るかな
☆192.168.0.4
session_start();
//$_SESSION['abc'] = '出来るかな?';
echo $_SESSION['abc'];
結果 なにも表示されない
つまり同期されていない。
iptablesOFF
SELinux(Security-Enhanced Linux)OFF
は試してみました
各サーバでsessionの保存を試したところ、記憶するので
自分自身へのsessionを保存は成功しているようです
お手上げ状態です。。どうかお助け下さい
以下、ログです
>30 END
<30 set 85vik0op4ns5pl5p4ns5pl5gbpg2 0 1440 16
>30 STORED
<30 set 85vik0op4ns5pl5p4ns5pl5gbpg2.lock 768 15 1
>30 STORED
<30 connection closed.
<30 new auto-negotiating client connection
30: Client using the ascii protocol
<30 incr oi2s69mqop4ns5pl5kop4ns5pl5.lock 1
>30 NOT_FOUND
<30 add oi2s69mqop4ns5pl5kop4ns5pl5.lock 768 15 1
>30 STORED
<30 get oi2s69mqop4ns5pl5kop4ns5pl5
>30 END
<30 set oi2s69mqop4ns5pl5kop4ns5pl5 0 1440 18722
>30 STORED
<30 set oi2s69mqop4ns5pl5kop4ns5pl5.lock 768 15 1
>30 STORED
<30 connection closed.
<30 new auto-negotiating client connection
30: Client using the ascii protocol
<30 incr 85vik0op4ns5pl5p4ns5pl5gbpg2.lock 1
>30 NOT_FOUND
<30 add 85vik0op4ns5pl5p4ns5pl5gbpg2.lock 768 15 1
>30 STORED
<30 get 85vik0op4ns5pl5p4ns5pl5gbpg2
>30 sending key 85vik0op4ns5pl5p4ns5pl5gbpg2. 0 16
abc|s:5:"出来るかな?";
お礼
fumikun2様 ご回答ありがとうございます! そうだったんですね、、 仰るとおりで、tcp://192.168.0.3:11211のみにすると 2サーバ間でセッションの共有は出来ました すると、192.168.0.3が落ちた場合、192.168.0.4にセッションを切らずに移行するといった設定は、memcachedでは実現出来ないんですね 他によいものはないか探して見ます ありがとうございました!