1

Zend 認証セッション ストレージ システムについて少し混乱しています。私の問題を説明しようとします。zendセッションや私の仮定や質問について、あなたの意見やあなたが知っていることを表明してください.

デフォルトでは、Zend_Auth_Adapter_DbTable は、認証が成功すると、提供された ID を auth オブジェクトに返します。getStorage() または getIdentity() を使用すると、「セッション値 (id、name、..)」をいくつかの変数に取得できます。!! 上記の両方の仮定が正しいと思う場合、私の質問は、

  1. セッション値はデフォルトでどこに保存されますか? (デフォルトでは、セッションを保存するために使用する場所は?)
  2. 以下のようにセッション保存パスを指定した場合。質問 1 に従ってセッションが保存される場合、これらのセッションをフォルダーに保存する必要があるのはなぜですか? save_path = /home/myaccount/zend_sessions/myapp
  3. Zend_Session_SaveHandler_DbTable を使用する場合。上記の 2 つのオプションよりも優れている点は何ですか?
  4. または、Zend でセッションを永続化できる方法を提案できますか? 現在、100 万人のユーザーが登録していますが、ユーザーのセッション ストレージを効率的に作成するにはどうすればよいでしょうか。

ディスカッションに参加するすべての皆さんに事前に感謝します。私の質問や仮定が間違っていると思われる場合は、自分のやり方で表現してみてください。だから私は間違いから学ぶことができます

4

2 に答える 2

2

私はあなたの質問について 100% 確信があるわけではありませんが、答えようとします :-)

  1. デフォルトの Linux ボックスでは、/tmp または php.ini で構成されているものにする必要があります。
  2. 共有ホスティング環境について考える (セキュリティの問題)
  3. Zend_Session_SaveHandler_DbTable は、たとえば負荷分散された Web サーバーを使用している場合に便利です。そのため、ユーザーは、接続している Web サーバーとは無関係にセッションを保持します。
  4. サーバーを 1 つしか使用せず (共有していない)、「誰がオンラインか」などの機能が必要ない場合は、ファイルシステムでのデフォルトのセッション処理が最適なソリューションです (私の意見では)。
于 2011-07-11T06:07:37.237 に答える
0
  1. Zend セッションは内部的に php グローバル変数 $_SESSION を使用します。セッションが保存されるパスは php.ini 設定によって制御されるため、 session_save_pathを使用できます。

  2. session_save_path には、セッションを保存する必要があるフォルダー名を指定できます。デフォルトでは、セッションは一時フォルダーに保存され、誰かが一時フォルダーをクリアするたびに、セッション データが失われます。そのため、他のフォルダーを使用することをお勧めします。

  3. DB セッションは、セッション共有に使用されます。Google のような大規模な Web サイトでは、1 つのサーバーがすべてのユーザー リクエストに対応するわけではありません。そのため、何かをリクエストすると、セッションが作成されて応答が返されます。次のリクエストでは、同じサーバーにヒットする保証はありません。 2 番目のサーバーは、db や memcache などの分散された場所からセッション データを取得しようとします。Memcache は、より高速であるため、分散セッションの db よりも最適なオプションです。

  4. セッションで保存しようとしている情報、それが長時間保存しようとしているものである場合、セッションで保存する代わりに、その情報をユーザーオブジェクトに関連付けることができないのはなぜですか。

于 2011-07-11T07:41:44.237 に答える