ブラックボックス

プログラミングのノウハウやライフハックをどんどん投稿していきたい

Apr 30, 2013 - 1 minute read - ノウハウ

【PHP】memcacheをインストールし使用する

何故か一部詰まったので……。

 

まずはmemcacheのインストール。

yum install autoconf
cd *PHPのインストール先*/bin/
./pecl install memcache
cd ../lib/php/extensions/
cp no-debug-non-zts-20060613/memcache.so ./

php.iniのextentionにmemcache.soを追加。

この状態で以下のPHPを動かす。

<?php

$memcache = new Memcache();
$memcache->connect('localhost', 11211);
$key = 'test';
if (!$memcache->get($key)) {
    echo 'set:' . date('H:i:s') . "<br>";
    $mem_test = rand(0, 100);
    $memcache->set($key, $mem_test, 0, 5);
} else {
    $mem_test = $memcache->get($key);
}
echo 'memtest:' . $mem_test;

すると、以下のnoticeとwarningが発生する。

Notice: Memcache::connect() [memcache.connect]: Server localhost (tcp 11211) failed with: Connection refused (111) in /***/memcache.php on line 4

Warning: Memcache::connect() [memcache.connect]: Can’t connect to localhost:11211, Connection refused (111) in /***/memcache.php on line 4

Warning: Memcache::get() [memcache.get]: No servers added to memcache connection in /***/memcache.php on line 6

Warning: Memcache::set() [memcache.set]: No servers added to memcache connection in /***/memcache.php on line 9
memtest:64

なんでかなーと考えていたが、memcachedが必要らしい。
以下を実行。

yum install libevent
yum install libevent-devel
cd /usr/local/src
wget https://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
tar xvfz memcached-1.4.15.tar.gz
cd memcached-1.4.15
./configure –with-libevent=/usr/share/doc/libevent-devel-1.4.13/
make
make install
cp /usr/local/src/memcached-1.4.15/scripts/memcached.sysv /etc/rc.d/init.d/memcached
mkdir /var/run/memcached
chown nobody /var/run/memcached
vim /etc/rc.d/init.d/memcached

/etc/rc.d/init.d/memcached start

起動時に/bin/bash: memcached: command not foundが出る場合は以下を参考。
http://yosiopp.net/archives/425