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にマッピング