Couchbase Server
は省きます...
install dependency
PECL の memcached は libmemcached に依存しているため、インストールが必要です。また PECL の memcached 2.1.0 から libmemcached 0.x 系はサポートしてないので libmemcached 1.0.x 以上が必要になります。
ここに現在 (2013/03/07) の最新の libmecached 1.0.16 の rpm があるので、remi を有効にしてインストールします。
$ yum install libmemcached --enablerepo=remi
また SASL 認証経由になるため依存するライブラリをインストールします。
$ sudo yum install cyrus-sasl-sql cyrus-sasl-plain cyrus-sasl-lib # この cyrus-sasl-plain がないと SASL 認証できない
build PECL memcached by phpize
- http://php.net/manual/ja/book.memcached.php
- download from PECL
SASL 認証を有効にするためには --enable-memcached-sasl を configure オプションに渡す必要があります。ここでは phpize を使ってビルドします。
$ wget http://pecl.php.net/get/memcached-2.1.0.tgz
$ tar xof memcached-2.1.0.tgz
$ cd memcached-2.1.0
$ phpize
$ ./configure --enable-memcached-sasl --with-php-config=/path/to/php-config
$ make
$ make install
configure php.ini
またデフォルトでは SASL は有効にならないため、use_sasl を On にする必要があります。
extension="memcached.so"
memcached.use_sasl = 1
hello hell
<?php
$m = new Memcached();
$m->setOption(Memcached::OPT_BINARY_PROTOCOL, true); // See: http://gihyo.jp/dev/feature/01/memcached-1.4/0002
$m->addServer(COUCHBASE_SERVER_HOST, 11211);
$m->setSaslAuthData(USERNAME, PASSWORD);
$m->set("hello", "hell");
var_dump($m->get("hello")); // => "hell"
$m->quit();
Any Debug?
<?php
var_dump(Memcached::HAVE_SASL); // => shoule be 1
var_dump(ini_get("memcached.use_sasl")); // => shoule be 1
var_dump($m->getResultMessage()); // 直前の実行したメソッドの結果を確認できる