PHP memcached Session
の使用法と構成
この記事 http://bardo.iteye.com/blog/914110 では、PHP memcached のインストール方法について説明しました。 PHP memcached Session の使用にはどのような問題がありますか? 以下に簡単にまとめます:
memcached セッションの最初の大きな利点は、PHP セッションよりも効率的で高速であることです。次に、マルチホストのセッション共有を実現すると便利です
次の方法で memcached セッションを使用します:
php.ini で単一のサイト サーバーを使用できます:
session.save_handler "memcached"
session.save_path? "host1:11211,host2:11211"
? session.save_path のパラメータは、ホスト名とポートをカンマで区切って指定する必要があります。ホスト名には IP アドレスも使用できます。
サーバーは memcached ですが、memcache 拡張機能とは異なり、save_path で通信プロトコルを指定する必要はありません。
サーバーに複数のホストがあり、現在の仮想ホストを構成したい場合は、それを構成できます。 htaccess ファイル。形式は次のとおりです。
php_value session.save_handler "memcached"
php_value session.save_path? "host1:11211,host2:11211"
? php.ini は 1 である必要があります。この値がシステムで 1 でない場合、
.htaccess ファイルに追加します:
php_value session.use_cookies = 1
? .heaccess がエラーを報告する場合は、次の例を参照して変更できます:
# PHP 4、Apache 1 .
?php_value session.save_handler "memcached"
# PHP 4、Apache 2.
? session.save_handler "memcached"
# PHP 5、Apache 1 および 2.
? "
?.htaccess はディレクトリレベルで制御できます。同時に、PHP コードで直接制御する方法もあります:
ini_set("session.save_handler", "memcached");
ini_set("session.save_path", "host1:11211,host2: 11211 ");
ただし、これは PHP の動作モードにも依存します。mod_php モードの場合は .htaccess を変更できますが、
fast_cgi をインストールする場合は、異なる php.ini を管理するために php_fpm が必要です。 mod_fcgid の場合は、FcgidInitialEnv
PHPRC "/dirOfPhiIni" で別の php.ini を設定しますが、新バージョンでは FcgidInitialEnv がコマンドです。ボス・ベンは
ですDefaultInitEnv.バージョンによってはバグがあり、正常にセットアップできない場合があります。 suPHP の場合は、その構成で別の構成を指定する必要もあります
ディレクトリ。
以下は mod_fcgid の設定例です:
#httpd.conf
LoadModule php5_module /php/php5apache2_2.dll
LoadModule fcgid_module modules/mod_fcgid.so
PHPIniDir /php
# 必要なディレクティブはすべて bla bla
# mod_fcgid に対して mod_php と同じ php.ini を使用します
FcgidInitialEnv PHPRC "/php"
#httpd-vhost.conf
??? サーバー名 php.example.com
??? >仮想ホスト>
#using mod_fcgid と /home/user1/php.ini
??? サーバー名 user1.example.com
??? htdocs"
????? FcgidInitialEnv PHPRC "/home/user1"
???? AddHandler fcgid-script .php
??? FcgidWrapper "/php/php-cgi.exe " .php
??? htdocs"
????? FcgidInitialEnv PHPRC "/home/user2"
???? AddHandler fcgid-script .php
????? FcgidWrapper "/php/php-cgi.exe " .php
???? FcgidWrapper "/php/php-cgi.exe" .php