DebianかCentOSにmemcachedを導入する

テスト環境がCent OSじゃなくてDebianだったので、
そっちでmemcached使えるようメモ。
(http://gihyo.jp/dev/feature/01/memcached/0001?page=2)

$ wget http://www.danga.com/memcached/dist/memcached-1.2.5.tar.gz
$ tar zxf memcached-1.2.5.tar.gz
$ cd memcached-1.2.5
$ ./configure
$ make
$ sudo make install

ここまでは上手くいったけど

$ /usr/local/bin/memcached -p 11211 -m 64m -vv
/usr/local/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

ここでこんなエラー
ググる

$ ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2

これでカイケツ
シナカッタ

export LD_LIBRARY_PATH=/usr/local/lib/  
can't run as root without the -u switch

今度こそ解決

$ /usr/local/bin/memcached -p 11211 -m 64m -vv -u yuki

ただrootで動かしてたので
「-u」オプションでユーザー名追加して起動した

$ aptitude install php5-dev
$ apt-get install php5-memcache
$ vi /etc/php5/conf.d/memcache.ini
+ extension=memcache.so

PHP側。

<?php
$memcache = new Memcache();
$memcache->connect('localhost', 11211) or die('connect failed.');

$get = $memcache->get('countkey');
echo $get;

$key = 'countket';
$val_or_var = 'hhhhh';
$flag = null;
$expire = 6000;
$memcache->set($key, $val_or_var, $flag, $expire);

$memcache->close();
?>

テストしてみる

$ php -f memcached_test.php
<8 new client connection
<8 get countkey
>8 END
<8 set countket 0 6000 5
>8 STORED
<8 connection closed.

動いたっぽい!



CentOS用の追記


CentOSで入れる際は下記のライブラリが必要

$ yum install libevent
$ yum install libevent-devel


PHPで操作する用

yum install php-devel
yum install php-pecl-memcache


…ただ,僕の環境は変態的で
php-pecl-memcache入れようとすると自動でPEARを入れようとする(以前直接入れたんだけど)ので,
pecl-memcacheはどうにかしないといけない.


ので,PEARコマンドで直接インストール

pear install http://pecl.php.net/get/memcache-2.1.0.tgz