Memcached 설치 및 설정하고 테스트 하기 by Vins

우선 작업하기 전에
memcached (서버 데몬)
memcache (php-memcache 클라이언트) 이 두개의 버젼을 일치해야 한다
설치 진행은
먼저 서버 memcached 1.4.5
클라이언트 memcache 2.2.5를 사용하였다
버젼이 안 맞으면 테스트가 되지 않는다

memcached
•memcached: 基本情報
•memcacheセットアップ
◦memcacheセットアップ[peclパッケージ編]
■memcacheインストール
■PECL::memcacheパッケージコンパイル
■PHP設定
•memcachedセットアップ
◦memcachedセットアップ[peclパッケージ編]
■memcached実行ユーザー作成
■memcachedインストール
■memcachedコンパイル
■memcached動作確認
■memcachedの設定確認
■自動起動設定
■サービスの起動
◦memcachedインストール[yum編]
■yumのリポジトリ更新
■memcachedのインストール
■memcachedの起動
•[資料]セッションセーブハンドラに登録
◦php.iniの場合
◦.htaccessの場合
◦プログラムの場合

memcached: 基本情報 †
http://memcached.org/

特集:memcachedを知り尽くす
http://gihyo.jp/dev/feature/01/memcached

memcacheはデーモン(deamon):memcached
クライアント(client):memcache
で構成されています。



memcacheセットアップ †

memcacheセットアップ[peclパッケージ編] †

memcacheインストール †
参照PHP インストール手順
memcacheのパッケージをダウンロードする


# echo "http_proxy=http://192.168.34.2:8080/" >> /etc/wgetrc
# #IDC以外の時は必要ない
# #間違えて作ってしまった場合は
# #rm /etc/wgetrc で消しておく
# cd /usr/local/src
# wget http://pecl.php.net/get/memcache-2.2.5.tgzダウンロードしたパッケージを解凍する

# tar -zxvf memcache-2.2.5.tgz
# cd memcache-2.2.5↑
PECL::memcacheパッケージコンパイル †
phpizeを使ってPECL::memcacheのパッケージをコンパイル


# /usr/local/php/bin/phpize && ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config && makememcacheのモジュールをphpのモジュールにコピーします。


# cp modules/memcache.so /usr/lib/php/modules/↑
PHP設定 †
php.iniに次の設定を行う。
※phpがrpmもしくyumインストールの場合は
 memcached.iniを追加して設定を書きこみます。


# vi /etc/php.d/memcached.ini■設定内容


[memcache]
extension=memcache.so
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
session.save_handler = memcache
session.save_path = tcp://127.0.0.1:11211



memcachedセットアップ †

memcachedセットアップ[peclパッケージ編] †

memcached実行ユーザー作成 †
memcached用のアカウント「memcached」を作成する
# sudo groupadd memcached
# sudo useradd -g memcached -s /sbin/nologin -d /nonexistent memcached↑
memcachedインストール †
memcachedのパッケージをダウンロードする


# cd /usr/local/src
# wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
# tar zxvf memcached-1.4.5.tar.gz
# cd memcached-1.4.5↑
memcachedコンパイル †
コンパイルします。

# ./configure
# make
# make install※パッケージがない場合はyumでインストール


# yum install -y libevent-devel.i386↑
memcached動作確認 †
# memcached -d -m 64 -p 11211 -l 127.0.0.1 -u memcached↑
memcachedの設定確認 †
/etc/init.dにスクリプトを書く

# vi /etc/init.d/memcached#!/bin/bash
#
# memcached
#
# chkconfig: - 55 45
# description: The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached

# Source function library.
. /etc/rc.d/init.d/functions

#Config
TARGET=memcached
DSN_BIN=/usr/local/bin/${TARGET}

PORT=11211
USER=memcached
MAXCONN=1024
CACHESIZE=768
OPTIONS="-l 127.0.0.1"

if [ -f /etc/sysconfig/memcached ]; then
. /etc/sysconfig/memcached
fi

start()
{
echo -n "Starting ${TARGET}: "
daemon ${DSN_BIN} -d -p ${PORT} -u ${USER} -m ${CACHESIZE} ${OPTIONS}
echo
touch /var/lock/subsys/memcached
}

stop()
{
echo -n "Shutting down ${TARGET}: "
killproc ${DSN_BIN}
echo
rm -f /var/lock/subsys/memcached
}

case "$1" in
start)
start
;;
stop)
stop
;;
status)
status ${TARGET}
;;
restart|reload)
stop
start
;;
*)
echo "Usage: `basename $0` {start|stop|status|reload|restart}" >&2
exit 1
esac
exit 0
権限を変更する

# chmod 777 /etc/init.d/memcached↑
自動起動設定 †
# chkconfig --add memcached
# chkconfig memcached on
# chkconfig --list memcached↑
サービスの起動 †
/etc/init.d/memcached restart↑
memcachedインストール[yum編] †

yumのリポジトリ更新 †
標準ではmemcachedが追加されていないのでのリポジトリを更新する。

# cd /usr/local/src
# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpmこれでリポジトリにmemcachedが追加される


memcachedのインストール †
yumで必要なパッケージをインストール

# yum -y install libevent memcached php-pecl-memcache zlib-devel re2cmemcachedの設定は/etc/sysconfig/memcachedを編集する。動かすだけならデフォルトのままでOK。


memcachedの起動 †
/etc/init.d/memcached startサービスを自動起動にしておく。

chkconfig memcached on↑
[資料]セッションセーブハンドラに登録 †

php.iniの場合 †
session.save_handler = memcache
session.save_path = tcp://127.0.0.1:11211↑
.htaccessの場合 †
php_value session.save_handler "memcache"
php_value session.save_path "tcp://127.0.0.1:11211"↑
プログラムの場合 †
ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://127.0.0.1:11211");

다 설정 하였다면 ..

telnet 127.0.0.1 11211 접속하여
stats <-- 입력해 보라
응답이 있다면 아래 목록이 출력 될 것이다 .

이하는 ssh의 까만 화면이라고 생각해자

# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
stats
STAT pid 22991
STAT uptime 1612
STAT time 1271830666
STAT version 1.4.5
STAT pointer_size 32
STAT rusage_user 0.000999
STAT rusage_system 0.008998
STAT curr_connections 11
STAT total_connections 16
STAT connection_structures 13
STAT cmd_get 4
STAT cmd_set 4
STAT cmd_flush 0
STAT get_hits 3
STAT get_misses 1
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 3080
STAT bytes_written 2975
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT bytes 744
STAT curr_items 1
STAT total_items 4
STAT evictions 0
STAT reclaimed 0


봤으면 quit !!