すべてのサーバーが問題なく同じセッションで動作できるように、Memcached とストア セッションを維持する専用のサーバーを用意しました。
しかし、どういうわけか、PHP セッションに関する Memcached の可能性の意味を誤解している可能性があると思います。
私は、Apache 1 の上に立ってa.domain.com
セッションを作成し、$_SESSION['test'] = "This string is saved in the session"
Apache 2 に移動するb.domain.com
かc.domain.com
、単にセッションとタイプecho $_SESSION['test'];
を続行して文字列を出力できると考えました。
そうではありませんが、同じセッションを共有する複数のWebサーバーがある場合、memcachedが優れたツールになると言われたことは確かです。
私は何を間違えましたか?
ところで。サーバーのセットアップ方法、php の使用方法、Memcached に基づくクラスターの構築方法などを説明する完全に詳細なチュートリアルまたは電子ブックが真剣に必要です。
私のphp.iniファイルには次のように書かれています:
session.save_path = "192.168.100.228:11211"
チュートリアルではプロトコルを定義しないように言われ、IP アドレスはApache 3
- memcached サーバーに与えられました。
これは phpinfo() のイメージです
のドメインsession.cookie_domain
は呼び出されませんdomain
が、.local
. この画像用に変更されました。
編集:
情報だけです。シンプルな Memcached ベースの PHP コマンドを使用している場合、すべてが完全に機能します。しかし、どういうわけか、セッションを保存しようとすると、memcached サーバーはアイテムを保存しません。
これは機能します:
<?php
$m = new Memcached();
$m->addServer('192.168.100.228', 11211);
$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
/* expire 'object' key in 5 minutes */
$m->set('object', new stdclass, time() + 300);
var_dump($m->get('int'));
var_dump($m->get('string'));
var_dump($m->get('array'));
var_dump($m->get('object'));
?>
これは機能しません
<?php
session_start();
$_SESSION['name'] = "This is a simple string.";
?>
編集2:ソリューション
Cookie などを含むキャッシュ履歴を削除した後、ブラウザーがジョブを完了していないことに気付きました。この問題は、元の個々のセッション ID に固執し、各サブドメインが互いに分離されているという事実のために続きました。
ここで定義されているものはすべて正しいですが、要求されたときにブラウザーが Cookie をリセットすることを確認してください。>.<