5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PECL memcached + Couchbase Server via SASL authentication

Last updated at Posted at 2013-03-07

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

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()); // 直前の実行したメソッドの結果を確認できる
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?