GAE+PHP/Rubyで拓く新世界

第2回 SQL4GでGAE+PHPを体験しよう

萩原 巧
リトルソフト株式会社

中越 智哉
株式会社ナレッジエックス

2010/2/22

Web アプリケーション開発者にとって、魅力的な環境に映るGoogle App Engineだが、データの永続化などで落とし穴が存在する。これまでの開発手法を変えずに使えないだろうか(編集部)

 第1回「GAE上でLL+RDBアプリを作ろう」では、Google App Engine(GAE)環境上で、PHPやRails(Ruby)とリレーショナルデータベース(RDBMS)がシームレスに連携できることによる新しい可能性について言及してきました。

 これまで、GAEでの開発では「リレーショナルデータベースは使えない」というのが常識であり、開発者はいかにして旧来のリレーショナルデータベース的なアプローチから、Key-Valueストアに適応したアプローチに設計を転換するかを迫られていました。

 SQL4Gという環境の登場により、GAEを試してみたいと考えていた方々のハードルを大きく下げられたのではないでしょうか。第1回掲載後にオープンしたSQL4Gのダウンロードサイトから、たくさんのダウンロードが行われました。予想以上の反響に、われわれも嬉しく思っております。

 さて今回は、GAE上でPHPを使用して、リレーショナルデータベースを活用するアプリケーションを構築するための環境を準備します。大まかな手順は以下のとおりです。

  • GAE+PHP+リレーショナルデータベースの開発環境の設定
  • 簡単なスクリプトをPHPで作成し、動作確認

 なお、本連載では、PHPおよびRailsについての説明を交互に行います。例えば、PHPに関する説明のみ読む、PHPとRailsとの違いを確かめながら読むといった、ご自身のスタイルに合った購読法で読み進めていただければ幸いです。

GAE+PHP環境のセットアップ

 GAE+PHP開発では、EclipseをIDE(統合開発環境)として使用します。その理由は、Eclipseの充実した開発機能のほかに、作成したアプリケーションをGAE環境へアップロードするためのツール「Google Plugin for Eclipse」がプラグインとして提供されているためです。

 なお、GAE上にアプリケーションを構築して運用するためには、Googleが発行するGAEのアカウントを取得する必要があります。Eclipseのインストールを含めたここまでの作業については、「EclipseでJava版App Engineを始めるための基礎知識」(@IT Java Solutionフォーラム)を参考にしてください。

 Eclipseをクリーンインストールした状態では、エラー表示や文字解析などPHPの開発を手助けしてくれる環境は存在しません。そのため、必要に応じてPHP開発プラグインをインストールします。筆者は、「PHPEclipse」を使用しています。

 Eclipseの環境設定が終了したら、続いてGAE上で動作するアプリケーションのプロジェクトを作成します。Eclipseメニューの[ファイル]−[新規]から[Web Application]を選択して、GAE WebApplication Project作成画面を開きます。

画面1 GAE WebApplication Project作成画面

 プロジェクト名およびパッケージ名【注1】を設定します。また、今回のアプリケーションではGWTを使用しないので、Google SDKs欄の[Use Google Web Toolkit]のチェックを外します。GWTについては、「GoogleからJava開発者へのサプライズ!な贈り物、Google Web Toolkit」(@IT リッチクライアント & 帳票フォーラム)を参照してください。

【注1】

PHP開発ではパッケージを使用しませんが、Google Plugin for Eclipseでは、Javaが標準言語となっているので、プロジェクト生成時にパッケージが自動生成されます。なお、このパッケージにはスケルトンクラスが生成されますが、今回は使用しません

SQL4GとPHP4Gモジュールの配置

 SQL4GとPHP4Gモジュールは、Jar(JavaArchive)形式で提供しています。以下のモジュールを、(projectRoot)/war/WEB-INF/libディレクトリに配置します。php4g.jar、sql4g.jarはPHP4Gのダウンロードサイトより入手してください。

SQL4G本体およびPHPをGAE上で動作させるためのモジュール
sql4g.jar、lsj-x.x.jar【注2】、php4g.jar
quercusモジュール【注3】
quercus.jar、resin-util.jar、script-10.jar
サーブレットコンテナjettyモジュール
jetty-x.x.xx.jar、jetty-util-x.x.xx.jar
そのほかのモジュール
velocityx.x.x.jar、log4j-x.x.x.jar、、commons-codec-x.x.jar、commons-fileupload-x.x.x.jar、lucene-core-x.x.x.jar、org.osgi.core-x.x.x.jar、servlet-api-x.x.jar、slf4j-api-x.x.x.jar
【注2】
lsj-x.x.jarのLSJとは、リトルソフトが開発した軽量AJAX+Javaフレームワークです。

【注3】
Caucho Technologyが提供する、PHP5の実行環境(PHPプロセッサ)です。次回、詳しく説明します。

画面2 SQL4GとPHPonGAEモジュールの配置

 
1/3
next

Index
SQL4GでGAE+PHPを体験しよう
  Page1
GAE+PHP環境のセットアップ
SQL4GとPHP4Gモジュールの配置
  Page2
php.iniの配置とxmlの編集
Pearモジュールの配置
SQL4GAdminの起動を確認しよう
  Page3
簡単なPHPスクリプトを作成しよう
動作確認用コードをGAE上にアップロードしよう

index GAE+PHP/Rubyで拓く新世界

 Coding Edgeお勧め記事
いまさらアルゴリズムを学ぶ意味
コーディングに役立つ! アルゴリズムの基本(1)
 コンピュータに「3の倍数と3の付く数字」を判断させるにはどうしたらいいか。発想力を鍛えよう
Zope 3の魅力に迫る
Zope 3とは何ぞや?(1)
 Pythonで書かれたWebアプリケーションフレームワーク「Zope 3」。ほかのソフトウェアとは一体何が違っているのか?
貧弱環境プログラミングのススメ
柴田 淳のコーディング天国
 高性能なIT機器に囲まれた環境でコンピュータの動作原理に触れることは可能だろうか。貧弱なPC上にビットマップの直線をどうやって引く?
Haskellプログラミングの楽しみ方
のんびりHaskell(1)
 関数型言語に分類されるHaskell。C言語などの手続き型言語とまったく異なるプログラミングの世界に踏み出してみよう
ちょっと変わったLisp入門
Gaucheでメタプログラミング(1)
 Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう
  Coding Edgeフォーラムフィード  2.01.00.91


Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

>

Coding Edge 記事ランキング

本日 月間