環境構築時に接続テスト用のコードをまとめました。
My環境
XAMPP1.7.3 + WinXP
ダウンロードはこちら
memcache側の設定
memcacheのインストール手順
- http://code.jellycan.com/memcached/よりmemcached 1.2.6 => win32 binaryバージョンのファイルをダウンロード
+zipファイルを適当な場所(例えばc:\memcached)に解凍
+コマンドプロンプトから下記コマンドを叩く、Windowsサービスとしてインストール。これで今度Windowsが起動すると自動でmemcacheサーバが起動してくれる。
c:\memcached.exe -d install
memcacheの起動(初回のみ)
コマンドプロンプト
c:\memcached\memcached.exe -d start
php側
php.iniの設定
XAMPPのパス/php/php.iniを編集:下記コードを追加
extension = php_memcache.dll
ここはLinux環境と違い拡張子が.soではなく.dll。
php_memcache.dllのダウンロード
http://downloads.php.net/pierre/から'memcache'を検索して正しいバージョンのファイルをダウンロード。
そしてxampp/php/extに入れる。
ここで問題!正しいバージョンはなんなのか?間違ってダウンロードすると後でApacheサーバを立ち上がるときエラーが出るよ。私の環境だとphp_memcache-cvs-20090703-5.3-VC6-x86.zipのファイルが正しいけど、今時点で上記URLには載せていない。結構ググって見ても結局古い結果で、しょうがなく友人からそのファイル貰った。。。ここにアップしたので、必要な方はダウンロードしてください。ウイルススキャンしてね。。
. $memcache->getVersion() . "<br />\n";
// we will create an array which will be stored in cache serialized
$testArray = array('horse', 'cow', 'pig');
$tmp = serialize($testArray);
$memcache->add("key", $tmp, 30);
echo "Data from the cache:<br />\n";
print_r(unserialize($memcache->get("key")));
?>
おまけ:memcacheメモリの調整
Memcached, by default, loads with 64mb of memory for it’s use which is low for most applications. To change this to something else, navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server in your registry, find the ImagePath entry and change it to look something like this:
“C:\memcached\memcached.exe” -d runservice -m 512
参考
http://www.codeforest.net/how-to-install-memcached-on-windows-machine
http://pureform.wordpress.com/2008/01/10/installing-memcache-on-windows-for-php/
環境情報
- Mac OSX Snow Leopard 10.6.4
- XAMPP 1.7.3
手順書
1. Apple Developer Tools (Xcode)の最新版をインストール
2. XAMPP Developer Packageをインストール
http://www.apachefriends.org/en/xampp-macosx.htmlより下記赤線のリンクをダウンロードします。
参考リンク:http://blog.m-schmidt.eu/2010/03/30/develop-memcached-web-apps-with-xampp-under-mac-os-x/
ダウンロードしたdmgファイルを開いてDevel-Package.mpkgをダブルクリックでインストールします。
3. ターミナルを開いて(/Applications/Utilities/Terminal)下記コマンドを実行
cd /tmp
pecl download memcache
tar xzf memcache-2.2.5.tgz
cd memcache-2.2.5
/Applications/XAMPP/xamppfiles/bin/phpize-5.3.1
MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' LDFLAGS='-O3 -arch i386 -arch x86_64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config-5.3.1
make
sudo make install
成功したら/Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts-xxxxのフォルダ(xxは20090626みたいな日付)にmemcache.soというファイルが生成されます。
4. php.iniファイルの編集
/Applications/XAMPP/xamppfiles/etc/php.iniファイルを開いて"Dynamic Extensions"のブロックを検索し、下記内容を追記します。私の環境では538行くらいでした。
extension=memcache.so
こんあ感じです。
5.memcacheを立ち上がる
ターミナルで下記コマンドを実行します。
memcached -m 8 -l 127.0.0.1 -p 11211 -d
これは自分の環境でmemcacheをIP:127.0.0.1、ポート:11211、8MBのRAMスペースで立ち上がる意味です。
6. phpで動作確認
下記ファイルを用意します。ファイル名は任意です(ここではmemcache.phpとしました)。
<?php
$memcache = memcache_connect('127.0.0.1', 11211);
if ($memcache) {
$memcache->set("str_key", "String to store in memcached");
$memcache->set("num_key", 123);
$object = new StdClass;
$object->attribute = 'test';
$memcache->set("obj_key", $object);
$array = Array('assoc'=>123, 345, 567);
$memcache->set("arr_key", $array);
var_dump($memcache->get('str_key'));
var_dump($memcache->get('num_key'));
var_dump($memcache->get('obj_key'));
}
else {
echo "Connection to memcached failed";
}
?>
これを/Applications/XAMPP/xamppfiles/htdocsに置いて、ブラウザでhttp://localhost/memcache.php(あるいはhttp://127.0.0.1/memcache.php)を開きます。
下記のようなページが表示されればOKです。
ちなみにmemcacheを停止するコマンドは:
killall memcached
前提条件
memcacheとphp_memcache extensionがインストールされたこと。
http://www.kinopyo.com/blog/install-memcache-and-php-extension-in-mac-xamppを参考してください。
手順
1. application/bootstrap.phpを編集
Kohana::modulesのcacheのコメントを外します。
2. 下記の内容でconfig/cache.phpを作成
場所はapplication/configでもいいしsystem/config、modules/configでもいいです。
<?php defined('SYSPATH') or die('No direct script access.');
return array
(
'default' => array
(
'driver' => 'memcache',
'default_expire' => 3600,
// Use Zlib compression (can cause issues with integers)
'compression' => FALSE,
'servers' => array
(
array
(
// Memcache Server
'host' => '127.0.0.1',
// Memcache port number
'port' => 11211,
// Persistent connection
'persistent' => FALSE,
),
),
),
);
3. 動作確認
まずはmemcacheを立ち上がってください。(ターミナルでmemcached -m 8 -l 127.0.0.1 -p 11211 -d )
そしてbootstrap.phpの最後にテスト用のコードを追記します。
$cache = Cache::instance();
$cache->set('hello','world');
die(var_dump($cache->get('hello')));
これで任意のページを開いて下記の内容が表示されれば成功ってことです。
string(5) “world”
テスト成功したらbootstrap.phpからテスト用のコードを削除してください。