Google App Engineのクラウド環境とJavaVM上で、PHPを動かす
どーも。ノッポマンです。
今回は、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のような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とアクセスすると、
ずらずらっとサーバーの設定情報が出力されたと思います。
いかかだったでしょうか?
早足でのご紹介となりましたが、動作も非常に軽く、かなり実用度は高いと思いますので、興味のある方は、是非お試しください。
次回は、実際にクラウド環境へアップロードして簡単なアプリケーションを作成してみようと思います。