memcachedをCentOS-6.xにインストールしてphpから使用

memcached関連のパッケージは?

$ yum list | grep memcached
http://ftp.kddilabs.jp/Linux/packages/fedora/epel/6/x86_64/repodata/repomd.xml: [Errno -1] repomd.xml does not match metalink for epel
Trying other mirror.
libmemcached.i686                          0.31-1.1.el6                 base
libmemcached.x86_64                        0.31-1.1.el6                 base
libmemcached-devel.i686                    0.31-1.1.el6                 base
libmemcached-devel.x86_64                  0.31-1.1.el6                 base
memcached.x86_64                           1.4.4-3.el6                  base
memcached-devel.i686                       1.4.4-3.el6                  base
memcached-devel.x86_64                     1.4.4-3.el6                  base
php-ZendFramework-Cache-Backend-Libmemcached.noarch
php-pecl-memcached.x86_64                  1.0.0-1.el6                  epel
python-memcached.noarch                    1.43-6.el6                   base

OSに合ったパッケージを選択してインストール。
memcached本体とdevelopパッケージ、peclパッケージをインストール。

peclでかなり依存関係のあるパッケージがインストールされます。

$ sudo yum install memcached.x86_64
$ sudo yum install memcached-devel.x86_64
$ sudo yum install php-pecl-memcached.x86_64

memcachedを起動。

$ sudo /etc/init.d/memcached start
memcached を起動中:                                        [  OK  ]

状態を確認。

$ sudo /etc/init.d/memcached status
memcached (pid  2032) を実行中...

portをlistenしているかどうか。

$ netstat -tulpn | grep :11211
tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      -
udp        0      0 0.0.0.0:11211               0.0.0.0:*                               -

phpとの連携を確認。

$ php -i | grep memcache
/etc/php.d/memcached.ini,
PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in Unknown on line 0
memcached
memcached support => enabled
libmemcached version => 0.31
Registered save handlers => files user memcached

上記のようなtimezoneの警告が出た場合、php.iniに以下のような設定を追加します。

$ sudo vi /etc/php.ini

date.timezone = "Asia/Tokyo"

Memcache::connectを使うためpecl memcacheをインストールしておく。

$ sudo yum install php-pecl-memcache

apacheを再起動。

$ sudo /etc/init.d/httpd restart

参考URL

http://hideprogram.web.fc2.com/linux/linux_memcached.html