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