このブログを検索

2013年4月9日火曜日

[GAE][PHP4G][SQL4G]SQL4GをGAE上で動かすまで

GAE上でデータ扱うのが面倒だったので,PHP+SQLでやりたいなと思ったところ「PHP4G」と「SQL4G」にたどり着きました.

基本的に下記記事の通りにすればOKですが,はまったところをメモとして記載し,2013年4月9日現在の最速と思われるサンプル実行までの手順をまとめておこうかと思います.

http://www.atmarkit.co.jp/fcoding/articles/gaephp/02/gaephp02a.html

1.GAE実行環境を準備する.
   (これは大前提なので,ほかの記事参考にしてください.)

2.GAEプロジェクトを作成する.

3. リトルソフト様よりPHP4GとSQL4GをDLする.

4.PHP4Gのwar配下を「appengine-web.xml」以外全部GAEのプロジェクトのwar配下にコピーする.(eclipseにドラッグドロップでOK)

5.「appengine-web.xml」はマージする.


  こんな感じなので,作成したプロジェクト側でも下記修正を加え,マージする.
 ★8~12行目:同様にしてコメントアウトにする.
 ★14~27行目:追記

6. プロジェクト右クリック→ビルド・パス→ビルド・パスの構成より「ライブラリー」にjarファイルを追加します.追加するファイルはwar/WEB-INF/lib/より下記の通り.

commons-codec-1.4.jar
commons-fileupload-1.2.1.jar
jetty-6.1.17.jar
jetty-util-6.1.17.jar
log4j-1.2.15.jar
lsj-1.3.jar
lucene-core-2.4.1.jar
org.osgi.core-1.2.0.jar
php4g.jar
quercus.jar
resin-util.jar
script-10.jar
servlet-api-2.4.jar
slf4j-api-1.5.0.jar
sql4g.jar
velocity-1.6.2-dep.jar

7.この状態でも,eclipse上でのテスト実行であれば動きます.
 >http://localhost:8888/sql4gadmin

8.ただしこのままだとGAE上では下記サイトでも記載の通り
  「Unable to find resource ‘sql4gadmin/MainPage.html’」がでます.
 >http://blog.aqn.jp/2011/03/gaephpsql4g/
  上記サイトの記載を参考におそらく最短でエラー回避の方法を記載しますのでご参考ください.

9.SQL4Gのプロジェクトファイルよりwar/WEB-INF/web.xmlを参照し,下記記載を作成したプロジェクトのweb.xmlに追記する.


10.さらに下記の通りコメントアウトする.(これやる必要あるのかは謎ですが)


以上の流れでPHP4GとSQL4Gのサンプルは動作するかと思います.
意外とはまる箇所があったので記載しておきました.

※地味に@ITにしたがっているだけだとはまりました...(僕だけ?)
 基本的にはweb.xmlとappengine-web.xmlの記載にだけ注意を払えば
 あとは全部コピーとビルド・パスだけで動くはずです.