注意: この拡張モジュールは Windows 環境では利用できません。
このモジュールは、PostgreSQL をストレージとして使用する session モジュール用にセッション保存ハンドラを提供するものです。 ユーザレベルの セッション保存関数 - session_set_save_handler() を使用することも可能ですが、 このモジュールは C で書かれており、PHP で書いた保存ハンドラより約 2 倍 高速です。
PgSQL セッション保存ハンドラは あらゆる規模の Web サイトを対象に 設計されており、いくつかの進んだ機能を持っています。
セッションテーブルを自動的に作成します。 |
セッションテーブルの vacuum を自動的に行います。 |
効率的なガベージコレクションを行います。 |
複数の PostgreSQL サーバをサポートします。 |
データベースサーバの自動フェイルオーバー(スイッチング)を行います。 |
複数の PostgreSQL サーバを稼動させている場合、自動的に ロードバランシングが行われます。 |
UPDATE のショートカット機能を有します。 |
すくなくとも PHP >= 4.3.0 、およびデータベースサーバとして PostgreSQL >=7.2.0 が必要です。また、PostgreSQL 7.2.0 以降の libpq(とそのヘッダファイル) および libmm(とそのヘッダファイル) が必要です。
簡単なインストール手順
tar.gz アーカイブを php4/ext に展開します (最新の正式リリースは、SourceForge の PHP Form Extension Project にあります)。
新しいディレクトリを session_pgsql のように呼ぶと すると、それを session_pgsql という名前にする 必要があります(PHP モジュールとして構築する場合を除きます)。
PHP 4 では ./buildconf を実行します。
configure --with-session-pgsql (およびその他のオプション)を実行します。
make; make install
php.ini の設定により動作が変化します。
PostgreSQL セッション保存ハンドラは、まだ開発中です。設定の詳細に ついては、配布物に含まれる README ファイルを参照して下さい。
セッションテーブルの定義
CREATE TABLE php_session ( sess_id text, sess_name text, sess_data text, sess_created integer, sess_modified integer, sess_expire integer, sess_addr_created text, sess_addr_modified text, sess_counter integer, sess_error integer, sess_warning integer, sess_notice integer, sess_err_message text, sess_custom text ); CREATE INDEX php_session_idx ON php_session USING BTREE (sess_id); |
警告 |
HASH 形式の INDEX を使用する際は、 サーバの負荷が非常に高くなった際にデッドロックの 問題が発生することがあります。通常の操作ではデッドロックが起こることは まずありませんが、起こることもありえます。インデックスには HASH 形式を使用しないでください。 |
すべてのフィールドが定義されている限り、セッションテーブルを 変更することも可能です。
アプリケーション変数テーブルの定義
CREATE TABLE php_app_vars ( app_modified integer, app_name text, app_vars text ); |
現時点で、この拡張モジュールの開発者は、開発を継続する時間の余裕 はありません。将来的により多くの機能を実装する予定です。
コメント、バグ修整、拡張、またはこのモジュールの開発を援助したい 場合には yohgaki@php.net までメールをください。いかなる援助も歓迎します。