開発に必要なライブラリ
Google App Engine for JavaでPHPを実行させるには、次の2つのライブラリが必要です。
- Quercus(3.1.6)
- Jetty(6.1.17)
Jettyについては必ずしも要るわけではありませんが、自分のマシンで開発を行うには、Jettyコンテナがあると不要なエラー画面を目にする機会が減ります。
それぞれダウンロードして必要なjarファイルを用意します。
(1)Quercus(3.1.6)
Quercusのサイトからダウンロードします。
執筆時点でのQuercus最新版は3.2.1ですが、このバージョンを使用した場合には実行時にAccessControlExceptionが発生します。これはQuercusの初期化処理中に「/usr/share/php」などのパスにアクセスしようとするのですが、Google App Engine for Javaのセキュリティマネージャがこれらのパスへのアクセスを禁止しているためです。
本記事ではライブラリなどのソースを修正することなく、なるべく簡単にPHP環境を試していただくことに主眼を置いておりますので、最新版ではなく3.1.6を使用します。
Quercus 3.1.6を入手したら、そのwarファイルをダウンロードし、jarコマンドで展開します。次の例ではCドライブのCodeZineフォルダに保存されたquercus-3.1.6.warファイルを展開しています。
>jar xf quercus-3.1.6.war
展開してできた「WEB-INF/lib」フォルダにある、次の3つのjarファイルを使用します。
- quercus.jar
- resin-util.jar
- script-10.jar
(2)Jetty(6.1.17)
JettyはJavaで実装されたServletコンテナで、Google App Engine for Javaでも使用されています。今回は6.1.17を使用します。
Jettyのダウンロードサイトから6.1.17のバイナリファイル(jetty-6.1.17.zip)をダウンロードし、jarコマンドで展開します。次の例ではCドライブのCodeZineフォルダに保存されたjetty-6.1.17.zipファイルを展開しています。
>jar xf jetty-6.1.17.zip
展開してできた「jetty-6.1.17/lib」フォルダにある、次の2つのjarファイルを使用します。
- jetty-6.1.17.jar
- jetty-util-6.1.17.jar
厳密にはJettyの2つのjarファイルがなくても実行できますが、ローカルの実行サーバであるdev_appserverで実行した場合に、起動後最初数回のリクエスト時に例外が発生します。
開発時には何度もdev_appserverを起動し直すと思いますが、毎回リロードを繰り返すのは開発効率を下げますので、この2つのjarも入れておくことをおすすめします。
簡単なPHPスクリプトの作成
最初に、PHPだけで動作する簡単なPHPスクリプトを作成しましょう。
プロジェクトの作成
Eclipseのツールバーから「New Web Application Project」を選択します。
プロジェクトの設定情報として、このサンプルでは次の値を設定します。
- Project nameに「PHPonGAE4J」を入力します
- Packageに「sample」を入力します
- 今回はGWT(Google Web Toolkit)を使用しないため、「Use Google Web Toolkit」のチェックを外しておきます
それ以外の項目はデフォルトのままとします。