Quercus/Jettyのjarをコピー
先ほど取得したQuercusとJettyの5つのjarファイルを、作成したプロジェクトの「war/WEB-INF/lib」にコピーします。

設定ファイルの修正/追加
次に、Google App Engine for JavaでQuercusを有効にするために設定ファイルを修正、追加します。
ここで紹介するPHPスクリプトファイルのエンコーディング、リクエスト/レスポンスのcharset/エンコーディングは、すべてWindows-31J/MS932を使用しています。
まず、Quercusを有効にするために「war/WEB-INF」以下にある、次の2つの設定ファイルを修正します。
- appengine-web.xml(App Engine定義ファイル)
- web.xml(デプロイメント記述子ファイル)
App Engine定義ファイル
App Engineの設定情報を記述するためのファイルで、ファイル名は「appengine-web.xml」です。主な情報としては、Application IDやバージョンなどの情報を記述します。
このファイルに次の設定を追加します。
<!-- Quercus用の設定 -->
<!-- (1)PHPファイルを静的なファイルから除外 -->
<static-files>
<exclude path="/**.php" />
</static-files>
<!-- (2)PHPファイルをリソースファイルとして登録 -->
<resource-files>
<include path="/**.php" />
</resource-files>
(1)拡張子がphpのファイルを静的ファイルから除外
Google App Engineではサーバから直接返すファイル(CSSや画像ファイルなど)については、静的ファイルとして登録することでキャッシュに配置され、効率的に配信されるようになります。
(2)拡張子がphpのファイルをリソースファイルとして登録
PHPスクリプトファイルのようにクライアントに直接返されず、プログラムで使用するファイルはリソースファイルとして登録する必要があります。
appengine-web.xmlの設定ファイル仕様については、Java Application Configurationで説明されていますので、他のパラメータなどを確認したい場合には参照してください。
デプロイメント記述子ファイル
Servlet仕様で定義される、Webアプリケーションのためのデプロイメント記述子を定義するファイルで、ファイル名は「web.xml」です。Servletを使っている方々にはおなじみのファイルです。このweb.xmlファイルに次の設定を追加します。
<!-- Quercusの設定 -->
<servlet>
<!-- (1) -->
<servlet-name>Quercus Servlet</servlet-name>
<servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
<!-- (2) -->
<init-param>
<param-name>script-encoding</param-name>
<param-value>MS932</param-value>
</init-param>
<!-- (3) -->
<init-param>
<param-name>ini-file</param-name>
<param-value>WEB-INF/php.ini</param-value>
</init-param>
</servlet>
<!-- (4) -->
<servlet-mapping>
<servlet-name>Quercus Servlet</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>
ここではQuercusのServletについての設定を記述します。
- QuercusのServletを登録
- PHPスクリプトファイルのエンコーディングをMS932に設定
- Quercusの設定ファイルである「php.ini」の場所を設定
- 拡張子が「*.php」となるリクエストをQuercusServletにマッピング
