Web PIのPHPにmemcacheモジュール追加

Windows上のmoodleでmemcachedを使ってみようとしてちょいとはまりました。moodleOSSで複数のDBに対応させている場合、どうしてもSQL文でのチューニングは行いにくい事もあり、大規模な運用でなくとも効果が期待できるかなと。

Microsoft Web Platform Installerでのphp_memcache.dll

IISPHPを追加するのにもっとも楽なのはMicrosoft Web Platform Installer(Web PI)を使う事です。
これでインストールした場合、PHPからmemcachedを利用するためのライブラリは付属していませんので、別途用意する必要があります。
基本、apache(xampp)も同じように設定しますが、phpのバージョンで利用するphp_memcache.dllが異なるので注意が必要です。

php_memcache.dllのダウンロード

現時点(2010/5)でWeb PI付属のPHPのバージョンは5.2.13なのでこれにあったphp_memcache.dllが必要です。このバージョンがPHP5.2用ではないと動作しません。いろいろ試しましたがこのバージョンだといけるようです。
http://downloads.php.net/pierre/
このサイトから以下のものをダウンロードします。
php_memcache-5.2-nts-Win32-vc6-x86-20090408.zip (2009-04-08 23:29 -0700)

php_memcache.dllの配置

このzipに含まれるphp_memchache.dllをphpのextフォルダにコピーします。x64環境の場合は下記フォルダのはずです。
C:\Program Files (x86)\PHP\ext

php.iniへの設定

次にphp.iniに設定を追加します。x64環境の場合は下記ファイルのはずです。
C:\Program Files (x86)\PHP\php.ini
extensionの説明が670行くらいにあるのでそこに「extension=php_memcache.dll」の1行を追加しました。

; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.
extension=php_memcache.dll
IISの再起動

設定が終わったらIISの再起動を行います。アプリケーションプールのみでも大丈夫とのことですが試していません。

php_infoで確認

うまく設定されていれば以下のように表示されるはずです。

moodleで利用するには当然memcachedサービスの立ち上げも必要ですが、このあたりは情報があふれているので割愛。
moodle上での設定は後日アップします。