lighttpd + fastcgi + php ++
今、やってるプロジェクトで PHP な BBS (ほぼ名前そのままですが) を立てようってことになって、 Apache + mod_php とかは あまりにフツーだなと思って、lighttpd + fastcgi で組むことにした。
ディストリビューションは CentOS 5.1。
Lighttpd
lighttpd は ソースから入れようかとも思ったけど、自分が管理するサーバじゃなので RPM で。
とはいえ、 CentOS には lighttpd のパッケージないので、たまたまあった Fedora 7 のサーバ使って SRPM からビルドすることにした。
で、 一度ビルドして CentOS にインストールしようとしたら『lua がねーよ』と言われて、yum でも見つからなかったので lighttpd を lua なしで再ビルド。
rpmbuild --bb --clean --without lua --without ldap /usr/src/redhat/SPECS/lighttpd.spec
ちょっと CFLAGS とかいじって 速いバイナリにしてみた。
xcache
PHP な BBS をセットアップしてみたら、意外とレスポンス遅かったので、ついカッとなって PHPアクセラレータ入れてみた。
ということで xcache (http://xcache.lighttpd.net/) にしてみた。
xcache には RedHat / Fedora 用のバイナリ はないので、 SRPM からビルド。
XcacheRedist – XCache を見たら、
jasonさん(?) が RHEL/CentOS用の XCache 1.2.1 src.rpm を公開しているので、
バージョンが最新 (1.2.2) じゃないけど、 とりあえず Get。
SRPM展開して /usr/src/redhat/SOURCES 見てみたら、ソース版のtar.gz がポツンと置いてあるだけなので、1.2.2 のソースと入れ替えて、ビルドすることにした。
.spec ファイルを書き換えて フツーに rpmbuild。
とりあえず 様子見ってことで 特に configure オプションとか細かくチェックしなかったけど。
xcache の設定は、
あたりを見ていたら、/etc/php.ini でやるものだと思ったけど、
XCache Administration をセットアップしようとしたときに、/etc/php.ini に
- xcache.admin.user
- xcache.admin.pass
をいくら書いても有効にならないので、少し悩んでみたら /etc/php.d/ に xcache.ini があるのがわかって解決。
とりあえず、設定ファイルそのままでは xcache が有効にならないので、
- xcache.size
- xcache.var_size
を 64 にセット。
あと、いちお デュアルコアなマシンなので
- xcache.count
- xcache.var_count
を 2 にセット。
ついでに XCache Administration もセットアップ。
InstallAdministration – XCache見たら、
/usr/share/xcache/admin にありそうな感じだけど無い罠…。
find で探してみたら、/usr/share/doc/xcache-{phpのバージョン}-{xcacheのバージョン}/admin にあった。
そこのディレクトリを lighttpd.conf に alias 登録して 完了。
Apache Bench してみたら 3倍くらいにパフォーマンスが改善されたので、とりあえずOK.