kikukawa's diary

都内で活動するシステムエンジニアが書いてます。 興味を持った技術やハマったポイント、自分用メモをつけてます。 最近はweb中心

memcachedをソースからインストール

一時的な開発環境用にmemcachedをインストールしました。
VM上のCentOS5.6にインストールです。

事前に必要なライブラリのインストールをします。
libeventは、memcachedのイベント通知API?で使われるらしいです。

yum install libevent libevent-devel

移動して、ダウンロードして、展開します。

cd /usr/local/src
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
tar zxf memcached-1.4.15.tar.gz 

configureして、makeして、installします。
with-libeventを指定しないとエラーで怒られました。

cd memcached-1.4.15
./configure --prefix=/usr/local/memcached --with-libevent
make
make install

起動用スクリプトをコピーします。

cp scripts/memcached.sysv /etc/init.d/memcachedctl 

立ち上げたら、ディレクトリが無いと怒られました。
pidファイルを置くためのディレクトリがなかったようです。

/etc/init.d/memcachedctl start
Starting memcached: chown: cannot access `/var/run/memcached': No such file or directory

ディレクトリを作成します。

mkdir /var/run/memcached

もう一度立ち上げます。

/etc/init.d/memcachedctl start
/bin/bash: memcached: command not found

memcachedにパスが通ってないと怒られました。
パスを通すほうが良いのですが、絶対パスに直してしまいました。
今回memcachedをインストールしたのは、一時的な使用なのでよしとしました。

vi /etc/init.d/memcachedctl 
diff -u /usr/local/src/memcached-1.4.15/scripts/memcached.sysv /etc/init.d/memcachedctl
--- /usr/local/src/memcached-1.4.15/scripts/memcached.sysv      2010-09-22 23:46:24.000000000 +0900
+++ /etc/init.d/memcachedctl    2015-01-19 11:46:04.175725878 +0900
@@ -31,7 +31,7 @@
     echo -n $"Starting $prog: "
     # insure that /var/run/memcached has proper permissions
     chown $USER /var/run/memcached
+    daemon /usr/local/memcached/bin/memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS
-    daemon memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS
     RETVAL=$?
     echo
     [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached

無事に起動しました。

/etc/init.d/memcachedctl start
Starting memcached:                                        [  OK  ]