CodeZine(コードジン)

特集ページ一覧

PHPも使える! Google App Engine for Java(前編)

Google App Engine for Javaで動作するスクリプト系言語 (1)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/06/09 14:00
目次

開発に必要なライブラリ

 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」を選択します。

Google Plugin for Eclipseツールバー
Google Plugin for Eclipseツールバー

 プロジェクトの設定情報として、このサンプルでは次の値を設定します。

  1. Project nameに「PHPonGAE4J」を入力します
  2. Packageに「sample」を入力します
  3. 今回はGWT(Google Web Toolkit)を使用しないため、「Use Google Web Toolkit」のチェックを外しておきます

 それ以外の項目はデフォルトのままとします。

プロジェクトの作成画面
プロジェクトの作成画面

  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2009/05/25 21:55 ローカルサーバのURLが「http://<登録したApplication ID>.appspot.com/echo.php」になっているのを「http://localhost:8080/echo.php」に変更

  • 2009/05/25 21:54 ローカルサーバのURLga

バックナンバー

連載:Google App Engine for Javaで動作するスクリプト系言語

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

  • WINGSプロジェクト 花田 善仁(ハナダ ヨシヒト)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5