GAE+PHP/Rubyで拓く新世界

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

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

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

2010/2/22

php.iniの配置とxmlの編集

 環境設定ファイルphp.iniを(projectRoot)/war/WEB-INFに配置します。

 GAE環境の文字コードはUnicodeのため、PHP側でもUnicodeの設定を行います。

 この設定が正しくないとレスポンスが文字化けする可能性があるので注意してください。

●php.iniのサンプル
unicode.semantics=on
unicode.http_input_encoding=UTF-8
unicode.output_encoding=UTF-8
unicode.runtime_encoding=UTF-8

unicode.script_encoding=UTF-8
unicode.fallback_encoding=UTF-8

mb_language=unicode
mb_internal_encoding=UTF-8 
mb_http_input=auto
mb_http_output=UTF-8

 プロジェクト作成時に自動生成されるweb.xmlとappengine-web.xmlという2つのXMLファイルを編集し、PHPプログラムが動作するように設定します。

 web.xmlに対して以下の部分を追記してください。このXMLは、すべてのPHPファイルをサーブレットとして動作させる設定と、SQL4GAdminを動作させるための設定です。

●web.xmlへ追記
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <servlet> 
    <servlet-name>Quercus For SQL4G Servlet</servlet-name> 
    <servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class> 
    <init-param> 
        <param-name>script-encoding</param-name> 
        <param-value>UTF-8</param-value> 
    </init-param>     
    <init-param> 
        <param-name>ini-file</param-name> 
        <param-value>WEB-INF/php.ini</param-value> 
    </init-param> 
  </servlet> 
  
  <welcome-file-list>
    <welcome-file>index.php</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
    
  <servlet-mapping> 
    <servlet-name>Quercus For SQL4G Servlet</servlet-name> 
    <url-pattern>*.php</url-pattern> 
  </servlet-mapping>
  
  
  <!-- SQL4G Database Admin -->
  <servlet>
    <servlet-name>SQL4GAdmin</servlet-name>
    <servlet-class>jp.littlesoft.sql4g.SQL4GServlet</servlet-class>
    <init-param>
      <param-name>VelocityFileLoaderPath</param-name>
      <param-value>template</param-value>
    </init-param>
    <init-param>
      <param-name>sql4g.instanceId</param-name>
      <param-value>1</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>SQL4GAdmin</servlet-name>
    <url-pattern>/sql4gadmin</url-pattern>
  </servlet-mapping>
  <!-- Welcome File -->
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

 appengine-web.xmlに対して以下の部分を追記してください。このXMLは、すべてのPHPファイルを動的なファイルとしてGAEに認識させるように設定しています。

●appengine-web.xmlへ追記
<sessions-enabled>true</sessions-enabled>
<precompilation-enabled>true</precompilation-enabled> 

<system-properties>
    <property name="file.encoding" value="UTF-8"/>
    <property name='DEFAULT_ENCODING' value='UTF-8'/>
</system-properties>

<static-files> 
    <exclude path="/**.php" />
</static-files>

<resource-files>
    <include path="/**.php" />
</resource-files>

 

Pearモジュールの配置

 (projectRoot)/warディレクトリ直下に、phplibディレクトリを配置します。このディレクトリには、pear::DBライブラリとテンプレートエンジン「Smarty」のソースが含まれています。

画面3 Pearモジュールの配置

SQL4GAdminの起動を確認しよう

 SQL4GAdminを起動して、環境設定が正しく行われたか確認をしましょう。

 SQL4GAdminは、SQL4Gに特化したグラフィカルなデータベース管理ツールです(SQL4Gに無償でバンドルされています)。データベースの作成やSQLの実行などを、Webブラウザから行えます。詳しくは、付属のドキュメントを参照してください。

 http://localhost:[yourport]/sql4gadminにアクセスしてください。環境設定が正しく行われていれば、SQL4GAdminの初期画面が表示されます。

画面4 sql4gadmin

 以上で、PHP4Gの開発環境の構築は終了です。各設定ファイルや後段で作成するスクリプトは、PHP4Gのダウンロードサイトから取得できます。興味のある方や手早く動作の確認をしたい方はダウンロードしてみてください。

prev
2/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 記事ランキング

本日 月間