Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-14.log failed
Installing memcache on Windows for PHP
Memcacheはdeamonである。 つまり、マシンで独立して動作するサービスである。
Memcacheはphpセッションのストアーとして利用できる。
例えば、phpで実装されている既存のWebアプリに独自のセッションハンドラーを持つ認証モジュール
(例:simpleSAMLphp)を組み込む際、セッションハンドラーの衝突を防ぐ為に、Memcacheを利用できる。1)
以下では、MemcacheサーバーをWindows上でインストールする手順を紹介する。
Install Guide
インストールを手順を次に示す。
- [win32 binary]版の memcacheをダウンロードする。
- マシン上の適当なところに解凍する。 例えば「c:\memcached」に解凍したとする。中にはmemcached.exeファイルが入っている。2)
- サービスとして登録する為に、コマンドプロンプトを開いて、次のコマンドを実行する。 「c:\memcached\memcached.exe -d install」
- memcacheサーバーを起動するためには、php_memcache.dllが必要である。そのファイルがあるかどうか確認する。(例 C:\php\ext)
ない場合は次のサイトからダウンロードする。http://www.pureformsolutions.com/pureform.wordpress.com/2008/06/17/php_memcache.dll
- php.iniファイルを開いて、モジュールを追加する。 設定例を次に示す。
extension=php_memcache.dll
- Apacheサーバーを再起動する。
Test memcache server
インストールが完了したら動作を確認する。 動作確認の為のテストページを次に示す。
<?php $memcache = new Memcache; $memcache->connect("localhost",11211); # You might need to set "localhost" to "127.0.0.1" echo "Server's version: " . $memcache->getVersion() . "<br />\n"; $tmp_object = new stdClass; $tmp_object->str_attr = "test"; $tmp_object->int_attr = 123; $memcache->set("key",$tmp_object,false,10); echo "Store data in the cache (data will expire in 10 seconds)<br />\n"; echo "Data from the cache:<br />\n"; var_dump($memcache->get("key")); ?>
エラーが出なくて、次のようなページが見れば、インストールは完了である。
Server's version: 1.2.6 Store data in the cache (data will expire in 10 seconds) Data from the cache: object(stdClass)[3] public 'str_attr' => string 'test' (length=4) public 'int_attr' => int 123
reference
1)
simpleSAMLphpを一般のphpアプリに統合する際、memcacheを利用することを勧めている。 DrupalとsimpleSAMLphpの統合にもmemcacheをセッションハンドラーとして用いている。
2)
Vista上でインストールする際は、権限を確認する必要がある。 memcached.exeの右クリックして、Propertiesを開くと、Compatibilityタブに権限に関する項目がある。 そこで、「管理者として実行する」にチェックする。
コメント