SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

開発に必要なライブラリ

 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」のチェックを外しておきます

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

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

次のページ
Quercus/Jettyのjarをコピー

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Google App Engine for Javaで動作するスクリプト系言語連載記事一覧
この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3948 2009/06/09 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング