Google App Engineのクラウド環境とJavaVM上で、PHPを動かす

■Google App Engineとは

goole社が開発環境を無料で提供してくれているいわゆるクラウドサービスの代表格です。
以前はApp Engine内で利用できる言語がPythonのみと、一部のエンジニアしか利用できませんでしたが、
昨年よりJavaのサポートが開始され、一気にシェアが広がりました。
そして、Javaがサポートされたということは、JavaVm上で動くスクリプト系言語も利用可能になったということです。

そして、今回はスクリプト言語の中でも利用者の多い、PHPをGoogle App Engine上で動作させようと思います

■Google App Engine上でphp開発環境構築

このエントリーは、javaとphpの基本をある程度理解しており、アプリケーションの構築が可能な方が対象となります。

また、ご利用のマシンにeclipseがインストールされていることを前提で、
話を進めていきますので、まだeclipseをインストールしていない方は、
お手数ですが、eclipseをインストールしてjavaの開発環境を構築してください。

■動作確認環境

windows vista
JDK6.0以上

■Google Plugin for Eclipseのインストール

eclipse上部のヘルプより、ソフトウェアを[ソフトウェアインストール]をクリック
作業対象のフォーム欄に、http://dl.google.com/eclipse/plugin/3.5(数字の部分はご利用のeclipseのバージョン)を入力し、
一覧に「Google Updates Site for Eclipse 3.X」と出てきますので、すべての項目にチェックを入れてインストールをクリックします。

インストールが完了すると、「再起動しますか?」と聞かれるので、再起動をしてください。

図1

図1のようなgoogleアイコンが出現していれば、インストールは完了です。

■アプリケーションを実行してみる

それでは、プロジェクトを作成をしてみましょう。
新規プロジェクトを作成するには、新たに追加された[g]マーク をクリックします。(青い方)

[Project name]、[Package]の2箇所に適切な名前を入力しましょう。

project name:app_test
Package:com.sample.test

とでも入力しましょうか

Google Plugin for Eclipseには、Google Web Toolkit(以降、GWT)のSDKが付いており、
先ほど作成したプロジェクトには、GWTで実装されたAjaxのサンプルソースコードが含まれています。

アプリケーションのディレクトリを左クリックし、[実行]>[WEBアプリケーション]とクリックすると、
コンソールに、http://127.0.0.1:8888/App_test.html?gwt.codesvr=127.0.0.1:9997
と出力されますので、ブラウザからこのURLにアクセスしてください。

「Web Application Start Project」と書かれたスターとメニューが開きますので、
中央のテキストフォームに適当な文字列を入力してSENDを押してください。

Ajaxダイアログが表示されれば、完了です。

■JavaVM上でPHPの動作環境を構築する


JavaVM上でPHPを動作させるには、QuercusとJettyというライブラリを利用します。

・Quercusダウンロード

http://quercus.caucho.com/から、安定バージョンである、Quercus3.1.6をダウンロードします。
落としてきたwarファイルを、jarコマンドで展開します。

>jar xf quercus-3.1.6.war


(展開場所はどこでもかまいません)
展開し終わったWEB_INF/lib内の
* quercus.jar
* resin-util.jar
* script-10.jar
をこれから使用します。

・Jettyダウンロード

http://dist.codehaus.org/jetty/jetty-6.1.17/よりjetty-6.1.17.zip のバイナリファイルをダウンロードします。
これまた、

>jar xf jetty-6.1.17.zip

で展開してあげましょう。
/lib内の
* jetty-6.1.17.jar
* jetty-util-6.1.17.jar
をこれから利用します。

そしたら、先ほど作ったapp_testプロジェクトのWEB_INF/lib内に、上記の5ファイルをコピーします。

・設定ファイルの修正

まず、Quercusを有効にするために「war/WEB-INF」以下にある、次の2つの設定ファイルを修正します。

* appengine-web.xml(App Engine定義ファイル)
* web.xml(デプロイメント記述子ファイル)

・appengine-web.xmlに以下の設定を追加します。


<!– Quercus用の設定 –>
<!– (1)PHPファイルを静的なファイルから除外 –>
<static-files>
<exclude path=”/**.php” />
</static-files>
<!– (2)PHPファイルをリソースファイルとして登録 –>
<resource-files>
<include path=”/**.php” />
</resource-files>


・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>UTF-8</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についての設定を記述

1. QuercusのServletを登録
2. PHPスクリプトファイルのエンコーディングをutf-8に設定
3. Quercusの設定ファイルである「php.ini」の場所を設定
4. 拡張子が「*.php」となるリクエストをQuercusServletにマッピング

・php.iniの作成

次に、web.xml内に定義したphp.iniファイルをWEB_INF内に作成します。

unicode.semantics=on
unicode.http_input_encoding=UTF-8
unicode.output_encoding=UTF-8
unicode.runtime_encoding=UTF-8


として、保存してください。

これで、phpの実行環境は整いました。

■PHPを実際に動かす


eclipseメニューより新規作成>ファイル
とクリックし、test.phpをwar以下に作成

中身を

<?php
echo phpinfo();


とでもしましょう。

そして、実行ボタンをクリックし、コンパイルします。

ブラウザから、http://localhost:8888/test.phpとアクセスすると、

ずらずらっとサーバーの設定情報が出力されたと思います。

いかかだったでしょうか?

早足でのご紹介となりましたが、動作も非常に軽く、かなり実用度は高いと思いますので、興味のある方は、是非お試しください。

次回は、実際にクラウド環境へアップロードして簡単なアプリケーションを作成してみようと思います。

この記事は

Interest Speaker > How to / Tips > Google App Engineのクラウド環境とJavaVM上で、PHPを動かす

この記事と類似または関連した記事

javaロゴ
mac OS上で始めるjavaプログラミング
PHPの開発環境構築(Aptana XAMPP Xdebug)
PHPの開発環境構築(Aptana XAMPP Xdebug)
画像がありません
PHPとOracleDBの連携