hnwの日記

PHPのJava実装であるQuercusをCLIで動かしてみた

今日は有名PHP実装の一つであるQuercusを紹介します。これはJavaサーブレットコンテナResinを開発しているCaucho社が開発しているもので、当然のことながらJava環境で動作します。既存のPHPコードを動かすのにJava環境のノウハウや資産が生かせれば良いところ取りができるわけで、野心的なプロジェクトだと言えるでしょう。前回記事「MacOSX上で.NET環境向けPHPコンパイラPhalangerを動かしてみた」で紹介したPhalangerと似た発想ですね。


今回はコマンドラインからQuercus単体で使ってみました。いちいちアプリケーションサーバをセットアップしなくても気軽に試せるのは嬉しいところです。

QuercusをCLIから動かす

Quercusには「com.caucho.quercus.CliQuercus」というコマンドラインインターフェース用のクラスが提供されています。これを使ってみましょう。


まずはQuercusのwarファイルからjarファイルを取り出します。Quercusホームページ下部の「Downloads」から「quercus-4.0.39.war」をダウンロードしてwarを展開します。

$ mkdir -p /tmp/quercus
$ cd /tmp/quercus
$ unzip -x $HOME/Downloads/quercus-4.0.39.war WEB-INF/lib/quercus.jar


ここで取り出したquercus.jarだけでPHPスクリプトが動きます。

$ echo '<?php var_dump(PHP_INT_MAX);' > int_max.php
$ java -cp WEB-INF/lib/quercus.jar com.caucho.quercus.CliQuercus int_max.php
int(9223372036854775807)

ベンチマークテスト

では、このCLI版のQuercusとPHPとの速度を比較してみましょう。PHPソースコード付属のベンチマークテストZend/bench.phpMacOSX 10.9上で実行してみました。

続きを読む