ZAPAnet総合情報局 > ZAPAブログ2.0 > XCacheのインストールメモ2

XCacheのインストールメモ2

2007年11月07日 プログラミングTIPS
XCacheのインストールとphp用アクセラレータ比較」以来、約1年ぶりにXCacheをインストールしました。今現在、このサーバーはXCacheがインストールされた状態で動いています。
XCacheはPHP用アクセラレータのひとつで、PHPコードのキャッシュや最適化を自動で行ってくれます。インストールするだけで、PHPプログラムの実行速度が数%〜数倍速くなってしまう魔法のアイテムです。今まではPHP用アクセラレータとしてeAcceleratorを使っていましたが、今回、安定版のXCache 1.2.1をインストールしました。
XCache - Boost PHP Performance - Trac
以下、XCacheのインストールメモ(Linux向け)です。

XCacheの入手

まずは、XCache - Boost PHP Performance - Tracのページで、XCacheの最新安定版を確認しダウンロードして解凍。(ディレクトリ、バージョン、コマンドなどは適宜変更する)
cd /usr/local/src/
wget https://xcache.lighttpd.net/pub/Releases/1.2.1/xcache-1.2.1.tar.gz
tar xzvf xcache-1.2.1.tar.gz

XCacheのインストール

続いて、XCacheのインストール。(ディレクトリ、バージョン、コマンドなどは適宜変更する。あらかじめphpizeを使えるようにしておく)
cd xcache
phpize
./configure --enable-xcache --enable-xcache-coverager --with-php-config=/usr/local/php5/bin/php-config
make
make test
make install
これでインストールは完了。
そして、インストール後に表示されるパスをメモ。(zend_extensionのパスに設定する)
Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/

XCacheの設定

次に、XCacheの設定。
xcache.iniの内容をphp.iniにペーストして、編集する。(php.iniのパスは適宜変更する)
zend_optimizerをインストールしている場合は、それより前にxcache.iniの内容を記述しないとエラーが起きるので注意が必要。
vi /usr/local/php5/php.ini
設定内容は、xcache.iniをよく読んで設定する。
今回は以下のように、適当に設定。(パスワードは暗号化して設定すること)
[xcache-common]
zend_extension = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/xcache.so"

[xcache.admin]
xcache.admin.auth = On
xcache.admin.user = "mOo"
; xcache.admin.pass = md5($your_password)
xcache.admin.pass = ""

[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 40M
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 0
xcache.gc_interval = 0
xcache.var_size = 1M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = Off
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off

[xcache.coverager]
xcache.coverager = Off
xcache.coveragedump_directory = "/tmp/pcov"

XCacheのスタート

設定が完了したら、Apacheの再起動。
service httpd restart
無事動き出したら、正常にXCacheが組み込まれているかどうか確認。
php -v
正常にインストールできていれば、
PHP 5.2.4 (cli)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with XCache v1.2.1, Copyright (c) 2005-2007, by mOo
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies
のように表示され、Zend Optimizerと同時に使用できることが確認できる。(もし、xcache.mmap_pathの/tmp/xcache/を自分で作成していたりすると、エラーが表示される)
また、phpinfo()関数を使っても、XCacheインストールの確認ができる。

XCacheの動作確認

XCacheの動作は、用意されている管理ツールで確認できる。
xcacheのadminディレクトリを公開ディレクトリにコピー。
cp admin /公開ディレクトリ/
コピーしたディレクトリにブラウザからアクセスして、php.iniに設定したxcache.admin.userとxcache.admin.passを入力すると管理画面にログインできる。(xcache.admin.passが正常に設定されていないと管理画面へは入れない)
ここで、メモリの使用状況を見ながら、php.iniの設定内容を最適な値に変更する。

xcache.coverager

XCacheには、coveragerが組み込まれている。
利用するには、
[xcache.coverager]
xcache.coverager = On
xcache.coveragedump_directory = "/tmp/pcov"
に設定を変更してから、ディレクトリを公開ディレクトリにコピーして、再起動する。
cp coverager /公開ディレクトリ/
service httpd restart
コピーしたディレクトリにブラウザからアクセスすると、いろいろチェックできる。(試してみたところ、ファイル、パーセント、ヒット数、ライン、ソースコードなどは正常に表示できたが、サーバー動作が重くなったように感じた。テスト時のみ利用するべき)


eAcceleratorからXCacheに切り替えてみて

eAcceleratorからXCacheに切り替えてみて、特別何かが変わったような感じはなく、どちらも安定しているように思います。
XCacheと同時にZend Optimizerも使用できています(同時利用の効果は不明)。
約1年前にXCacheを試したときは、非安定版しかインストールできなかったため避けていましたが、今回XCache1.2.1をインストールしてみて、とても安定しているように感じました。

eAccelerator、XCacheのどちらも安定して使えるのが確認できたことは、選択肢が広がりバグなどが発見されたときにも対応が楽になったことになります。
インストールしてもほとんど弊害はないので、PHPを使ったプログラムを利用しているのであれば、なるべくPHP用アクセラレータ(eAcceleratorからXCacheに加えて、APCやPHP Acceleratorも含めて)をインストールした方がよいと思われます。

関連リンク

XCacheのインストールとphp用アクセラレータ比較
PHP5.2.0とeAcceleratorのインストールメモ
Zend Optimizerインストールメモ
PHP Accelerator インストールメモ
ファイルを圧縮するmod_deflateの効果


追記PHPにXCache3.0をインストール