xcacheを使う

昨日のエントリではeacceleratorをphp5.2.14で使おうとして結局有効にできませんでした。

で、代わりというか別のプロダクトもあるようなのでそれを使ってみることにしました。どうやらxcacheってのが最近は流行りらしいですよ。

ダウンロード

xcacheのブツはここにあります。最新は2.0.0。5.2.14あたりでもちゃんと使えました。

展開してmake

いつものように展開してmake,make install。autoconfが必要で、Solarisには入ってなかったりします。必要に応じてそのあたりインストール。昨日のエントリにそのあたり書いてあります。

$ /usr/local/bin/tar -zxvf /tmp/xcache-2.0.0.tar.gz
$ cd xcache-2.0.0
$ phpize
$ ./configure --enable-xcache --enable-xcache-optimizer 
$ /usr/local/bin/make
# /usr/local/bin/make install

php.iniに設定を追加

ソースコードディレクトリにあるxcache.iniを環境のphp.iniへ追加します。

$ su - root
$ cd xcache-source-directory
$ cat xcache.ini >> /usr/lib/php.ini

php.iniをちょっと調整。
zent_extensionは実際にsoファイルがインストールされた場所を指定します。xxxとなっているところを実際のディレクトリ名にしたりちょと綴りが違っているのを修正したり。
UNIX環境だとzend_extension_tsはコメントアウト。それとついでにxcache.optimizerをonに。

adminも入れてみる

ソースコード中にadminというディレクトリがあるので、それをウェブサイト上の見えるところへ適当にコピー。認証はphp.iniの

xcache.admin.user
xcache.admin.pass

を設定。パスワードはmd5()でハッシュされた値をいれるので以下の様にして求める。

$ php -r 'print md5("hogehoge");'
c46df1d12ec0cd5a3a327b4f4cf07f74-

一番うしろのハイフンはいらない。

Apacheを再起動

Apacheを再起動させる。

# /usr/local/apache2/bin/apachectl restart

有効になってるかな

phpを単体で起動させてみて、

$ /usr/local/bin/php -v
PHP 5.2.14 (cli) (built: Feb 14 2011 11:04:36) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
    with XCache v2.0.0, Copyright (c) 2005-2012, by mOo

ああ、いいみたいですね。

php -r 'phpinfo();' で参照すると、

XCache Support => enabled
Version => 2.0.0
Modules Built => cacher optimizer
Readonly Protection => N/A
Cache Init Time => 1970-01-01 09:00:00
Cache Instance Id => 0
Opcode Cache => disabled
Variable Cache => disabled

とOpcode Cacheがdisableになっている。でもadmin画面では有効だっていっているし、実際キャッシュもしているようなので気にしない。


で効果は?

うーん、実はウェブが遅くてこれやってみたんですが、遅い原因は別にあったんですねぇ。なので、よくわからない、、のが正直なところ。すみません。
あ、暇があったら外してみた状態で試験してみよう。