【PHP】セッション格納方式の詳細

9810 ワード

    :zhanhailiang   :2013-03-15
まずセッションが自動的に開くかどうか確認します。セッションを通してstart()は手動で開く:
;                       。    0(   )
; Initialize session on request startup.
; http://php.net/session.auto-start
session.auto_start = 0
クライアントメモリ
クライアントでは、セッションIDはクッキーに格納されてもよく、またはURLパラメータによって取得されてもよい。サーバの設定に依存します。
;           cookie       ID。    1(  )
; Whether to use cookies.
; http://php.net/session.use-cookies
session.use_cookies = 1
 
;              cookie       ID。。              URL      ID    。
; This option forces PHP to fetch and use a cookie for storing and maintaining
; the session id. We encourage this operation as it's very helpful in combatting
; session hijacking when not specifying and managing your own session id. It is
; not the end all be all of session hijacking defense, but it's a good start.
; http://php.net/session.use-only-cookies
session.use_only_cookies = 1
クッキーに格納されていることが確認された場合、クッキーなどの設定セッションがクッキーに格納されている各構成をワンポイント構成してもよい。name、クッキーlifetime、cookie_path、クッキーdomain,cookie_secure,cookie_httponly
; Name of the session (used as cookie name).
; http://php.net/session.name
session.name = PHPSESSID
 
; Lifetime in seconds of cookie or, if 0, until browser is restarted.
; http://php.net/session.cookie-lifetime
session.cookie_lifetime = 0
 
; The path for which the cookie is valid.
; http://php.net/session.cookie-path
session.cookie_path = /
 
; The domain for which the cookie is valid.
; http://php.net/session.cookie-domain
session.cookie_domain =
 
; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
; http://php.net/session.cookie-httponly
session.cookie_httponly =
サーバ側記憶
サーバ側においても、同様に複数の方法でセッションを格納することができる。デフォルトのセッションはファイルに保存されています。このときsession.save_パスは保存ファイルを作成するためのパスです。
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = files
 
; Argument passed to save_handler.  In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
;
; The path can be defined as:
;
;     session.save_path = "N;/path"
;
; where N is an integer.  Instead of storing all the session files in
; /path, what this will do is use subdirectories N-levels deep, and
; store the session data in those directories.  This is useful if you
; or your OS have problems with lots of files in one directory, and is
; a more efficient layout for servers that handle lots of sessions.
;
; NOTE 1: PHP will not create this directory structure automatically.
;         You can use the script in the ext/session dir for that purpose.
; NOTE 2: See the section on garbage collection below if you choose to
;         use subdirectories for session storage
;
; The file storage module creates files using mode 600 by default.
; You can change that by using
;
;     session.save_path = "N;MODE;/path"
;
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
; http://php.net/session.save-path
;session.save_path = "/tmp"
PHP対応session_によるset保存しますhandlerは会話プロセッサのカスタムopen、close、read、write、destroy、gc処理関数を実現します。よくある会話プロセッサはメモリ型の割り当て(mm、memcacheなど)を使って、データベースを使って記憶することもできます。したがって、セッション格納がファイルシステム(例えばデータベースPostgreSQL Session Save Handlerまたはデフォルトのファイル記憶files)と連携して動作する必要がある場合、ユーザによってカスタマイズされたセッションプロセッサがデータを保存していないセッションを失ってしまう可能性がある。メモリ型割付メモリを使用する場合は、セッションの永続化を考慮する必要があります。
次に、memcache(d?)会話プロセッサについて重点的に説明します。
Memcacheモジュールは、memcachedに便利なプロセス指向及びオブジェクト指向インターフェースを提供しており、memcachedは、動的ウェブアプリケーションがデータベースからデータをロードすることを低減するために生成される常駐プロセスキャッシュ製品である。
Memcacheモジュールは同時にsessionプロセッサを提供しています。 
なお、memcachedに関する情報は、一覧を参照してください。  http://www.memcached.org/.
memcachedは、高機能分散メモリオブジェクトキャッシュシステムであり、通常は、動的ウェブアプリケーションの応答速度を向上させるためにデータベース負荷圧力を低減するために使用される。 
この拡張は、libmemcachedライブラリが提供するappiを使用して、memcachedサービスと相互作用する。
これは同時にsessionプロセッサ(memcached)を提供しています。 
libmemcachedについての詳細は、\u 0026 quot;で記入できます。  http://libmemcached.org/libMemcached.html表示します
memcacheセッションプロセッサ構成:
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211?persistent=0&weight=1&timeout=1&retry_interval=15,tcp://127.0.0.1:11212?persistent=0&weight=1&timeout=1&retry_interval=15,tcp://127.0.0.1:11213?persistent=0&weight=1&timeout=1&retry_interval=15,tcp://127.0.0.1:11214?persistent=0&weight=1&timeout=1&retry_interval=15"
データベースプロセッサが使用できます。 Session PgSQLを実現しました。他のデータベースを使ってセッションストレージを実現することもできます。ただし、カスタムプロセッサ関数」が必要です。 function.session-set-save-handler.php。具体的なカスタムプロセッサは一覧を参照してください。 マリアat junkies dot jp。