本文へジャンプ

データベース/データ管理  >  DB2 Developer Domain  >  ライブラリー  >  技術白書-DB2ファミリー関連  >  
   
 

LinuxへのPHP4+DB2 インストール



日本アイ・ビー・エム ソフトウェア事業部 データマネジメント事業推進 技術部
下佐粉昭
 
 
第1版
コンテンツ
はじめに
1.構成
2.Apache+PHPのインストール方法について
3.インストール
4.起動テスト
5.その他の情報
6.おわりに
 執筆者

下佐粉 昭さん
下佐粉 昭
IBMソフトウェア事業部 データ・マネジメント事業推進 技術部のメンバー
E16420@jp.ibm.com
 
はじめに
今、ほとんどのWebサイトでは動的なHTMLが使用されています。動的にHTMLを作成するにはCGIを利用したり、JSP、ASPを利用する等いくつかの手段がありますが、ここ数年でユーザー数を急速に増やしているのがPHPです。
URLの最後が、***.php、*****.php3等となっているページを見た事はないでしょうか?
あれがPHPを使用しているページです。PHPは、
  • サーバーサイドのスクリプト言語で、HTMLに埋め込む形でコードを書く事ができる
  • 各種データベースとの連携に優れる
  • 対応しているOSが多い
  • 実行速度が高速
  • オープンソースのソフトウェア


等、いくつもの優れた特徴を持っています。

PHPの一番の特徴は、「とっつきやすい」という事だと思います。スクリプト言語である事に加えて、HTTPとのインターフェースに優れ、なにより構文が簡単で読みすいため、初心者にとって非常にとっつきやすく感じます。プログラム経験の無い方でも入りやすいですし、他の言語でプログラム経験の有る方なら、すぐにPHPのスクリプトを書き始める事ができるでしょう。

今回は、Linux上にPHP4と、Apache(Webサーバー)、DB2 ユニバーサル・データーベースをインストールし、PHP4からDB2にアクセスするための設定方法をご紹介します。PHP、ApacheともにWebからダウンロードできますし、DB2も、

http://www14.software.ibm.com/webapp/download/category.jsp?s=c&cat=data

から90日評価版やパーソナル開発者版(期限制限無し)が無料でダウンロードできますので、ぜひチャレンジしてみてください。

1.構成

今回使用したソフトウェアは以下の通りです。

  名前/Version 備考/情報源
OS
Redhat 8.0
http://www.jp.redhat.com
DB2 DB2 EE Ver. 7.2 + FixPak8 for Linux
DB2 ESE Ver. 8.1 for Linux
http://www.ibm.co.jp/software/data
PHP PHP Ver. 4.3.0RC3※ http://www.php.net
http://www.php.gr.jp
Apache Apache Ver. 1.3.27 http://httpd.apache.org/
※ この原稿ではPHP Ver. 4.3のリリース候補版を使用して動作確認をしています

使用したハードウェアは以下の通りです。(一台のみ)
CPU Pentium III 866 MHz
RAM 256 MByte
HDD IDE 20GByte



2.Apache+PHPのインストール方法について

Linux上にApache と PHPをインストールする場合、PHPのインストール方法を以下の3つの方法から選ぶ事になります。お勧めはDSOを使用する事ですが、どの方法でもPHPで出来る事に変りはありません。

  • ApacheのDSOモジュール(動的モジュール)として組み込む
  • Apacheの組み込みモジュールとして利用する
  • ApacheからPHPをCGIとして利用する

2.1 Apache DSO
Apache DSOとは、Apache の ローダブル・モジュールの事です。実行時、必要になった時にライブラリがApacheにロードされます。PHPがバージョンアップしてもPHPだけ入れ替えればよく、Apacheを再コンパイルする必要が無いので、この方法がお勧めです。ただし古いバージョンのglibcには動的ロードに関する不具合があり、PHPがDB2のライブラリをLOADできなくなる障害が発生する場合があるようです。この場合は、glibcを新しいものに更新するか、組み込みモジュールとしてPHPをインストールする必要があります。(詳しくは3.2章を参照)


2.2 Apacheの組み込みModule
静的にApacheにPHPのモジュールを組み込む方法です。PHPのコンパイル後にApacheのコンパイルをする必要があります。


2.3 CGI
PHPはCGIとしても利用可能です。しかし、CGIはクライアントからアクセスが有るたびにプロセスを生成するため、あまり効率が良いとは言えません。組込みモジュールが使用不可能な環境以外ではお勧めしません。(このドキュメントではCGIからのPHPの利用方法は説明していません。)


(参考)以下の方法で、phpコマンドを作成する事が可能です。

(PHP4のソースディレクトリで)
# ./configure --with-ibm-db2=/opt/IBM/db2/v8.1 --enable-force-cgi-redirect
# make
# make install

これで、/usr/local/bin/php-cgiが作成されます。

上に戻る


3. インストール
Linuxのインストールは完了しているものとして、各ソフトウェアのインストール方法を説明します。ただし、OSインストール時にはOS付属のApacheやPHPをインストールしないようにして下さい。もし、インストールしていた場合は、先に削除しておいてください。

3.1 DB2のインストール
ここでは、DB2 UDB V8.1 for Linuxのインストール方法を解説します。V7.xを使用の場合は、以下のドキュメントを参照してください。

「DB2 UDB for Linuxクイックインストール(PDF版)」
http://ibm.com/jp/software/data/developer/library/techdoc/pdf/db2v72linuxinstall.pdf

rootでログインして、まずDB2のCDROMをマウントします。

# mount /mnt/cdrom

DB2 V8から、インストーラーが全OSでグラフィカルなJavaベースのものに変更されました。(GUI無しでインストールするコマンドも用意されています。DB2のリリースノートを確認してください。)
まだX(GUI)環境が起動していない場合は、以下のコマンドでXを起動します。
# startx
続いてDB2のインストーラーを起動します。
# cd /mnt/cdrom/
# ./db2setup

(JREの日本語表示に必要な日本語フォントが入っていない環境ではLANG="" ./db2setup と実行する事で英語メッセージで実行できます)

以下は、DB2インストールの一例です。どのようにインストールしていただいても問題ありませんが、PHPをコンパイルするために開発環境だけは必ず含めるようにしてください。


<クリックして拡大>

上記画面で、「製品のインストール」を選択します。


<クリックして拡大>

DB2 UDB Enterprise Server Editionを選択して「次へ」をクリックします。 DB2本体ではなく、クライアントだけを導入したい場合は、Application Development ClientかAdministration Clientを導入します。


<クリックして拡大>

DB2をインストールする前に以下の事を計画しておく必要があります。

  1. インスタンスユーザー : DB2ではインスタンス毎に起動/停止を管理します。インスタンスは複数のDBをまとめたものです。インスタンスユーザーは、インスタンス内で最も権限が強いユーザーになります。インスタンス一つ毎にTCP/IPのポート番号を一つ設定する必要があります。

  2. 隔離(分離)ユーザー :ストアドプロシージャを実行する際に使用されるユーザー

  3. 管理ユーザー : 管理サーバーのオーナーになるユーザー この記事では、以下のように計画しました。

この記事では、以下のように計画しました。

  名前 パスワード グループ名 ホームディレクトリー ポート番号
インスタンス db2inst1 db2inst1 db2grp1 /home/db2inst1 50000
隔離ユーザー db2fenc1 db2fenc1 db2fgrp1 /home/db2fenc1 -
管理ユーザー dasusr1 dasusr1 dasadm1 /home/dasusr1 -
              表 1 - 計画表

※今回はUID,GIDは指定せず、インストーラーのデフォルトを使用しましたが、UID,GIDを指定することもできます。


<クリックして拡大>

DB2ライセンス情報の確認です。内容を確認して同意できたら「同意する」をチェックして、「次へ」をクリックします。


<クリックして拡大>

インストール・タイプを選択します。
DB2サーバーとApache(PHP)を別の機械にインストールする場合は、「標準」で問題ありません。DB2とApache(PHP)を同じ機械にインストールする場合は「カスタム」を選び、後のセクションで開発環境をインストールするようにします。
今回は「カスタム」を選択します。


<クリックして拡大>

「DB2 UDB Enterprise Server Editionをこのコンピューターにインストールする」にチェックを付けて、「次へ」をクリックします。

「設定を応答ファイルに保存する」を選択すると、今回のインストール内容をファイルにして保存しておく事ができます。別のコンピュータにDB2を導入する際にそのファイルを利用する事で導入の手間を減らす事ができます。


<クリックして拡大>

カスタムを選択した場合は、このようにインストールする機能を選択する画面になります。インストールしたい機能にチェックを付けてください。
PHPからDB2に接続するためには、PHPのコンパイル時にDB2の開発ライブラリ(ヘッダファイル等)が必要になりますので、ここで「アプリケーション開発ツール」にチェックを付けます。
また「入門」はPHP+DB2の動作に必須ではありませんが、この記事の後で作成するサンプルデータ?ベースの作成に必要ですので、チェックを付けておいてください。


<クリックして拡大>

言語の選択画面です。日本語表示モードでインストーラを起動している場合は、日本語が選択済み(右の選択済み言語に入っている)の状態になっていますので、そのまま「次へ」をクリックします。

ここでの選択は、ヘルプメッセージやコマンド実行時の応答メッセージを表示するためのメッセージカタログの選択です。日本語を選択から外しても、メッセージが英語で出るようになるだけで、日本語のデータをDBに格納することはできます。


<クリックして拡大>

管理サーバーについての設定です。
DB2では管理サーバーを起動しておく事で、GUIのコントロールセンターから複数のDB2を集中管理する事ができますので、ここで作成しておく事をお勧めします。

表 1で計画した内容にしたがって、管理サーバーのオーナになる新規ユーザーの名前、パスワード、ホームディレクトリを入力してください。また、UID、GIDの数値を指定したい場合は、「デフォルトUIDを使用する」のチェックを外し、値を入力してください。
既存のユーザーをインスタンス所有ユーザーにしたい場合は、「既存ユーザー」を選択し、セレクトボックスのユーザー一覧からユーザーを選択します

管理サーバーは外部から管理をしやすくするための機能で、管理サーバーが起動していなくても、DB2に接続してトランザクションを実行したり、設定を変えるなど、DB自体の操作は可能です。また、ここで作成しなかった場合でも、DB2導入ディレクトリのinstance/ディレクトリ内の、dascrtコマンド(DB2 UDB V7ではdasicrtコマンド)で後から管理サーバーを作成することも可能です。


<クリックして拡大>

インスタンスのセットアップです。
前述のように、DB2では、インスタンスは、起動、停止の単位で、インスタンス内には複数のDBを作成可能です。
ここで作成しなかった場合でも、DB2導入ディレクトリにあるinstanceディレクトリ内のdb2icrtコマンドで後からインスタンスを作成することも可能です。
ここでは、「DB2インスタンスの作成」を選択します。


<クリックして拡大>

パーティッションの選択です。パーティションインスタンスを使用すると、複数のコンピュータを使って一つのDBを作成するパラレルDBサーバーを構築できます。パーティション化されたインスタンスを使用するには、DB2のパラレルフィーチャー・オプションが別途必要になります。
ここでは、「シングル・パーティション・インスタンス」を選択します。


<クリックして拡大>

インスタンス所有ユーザー(インスタンスオーナー)を作成します。インスタンス所有ユーザーは、インスタンス内で最高権限を持つユーザーです。DB2ではインスタンス名=インスタンス所有者のユーザー名になります。インスタンスに対して操作を実行したい場合はこのユーザーでシステム(OS)にログインする必要があります。
あらかじめ作成してある表 1の計画に従って、ユーザー名、パスワード、ホームディレクトリを入力してください。また、UID、GIDの数値を指定したい場合は、「デフォルトUIDを使用する」のチェックを外し、値を入力してください。
既存のユーザーをインスタンス所有ユーザーにしたい場合は、「既存ユーザー」を選択し、セレクトボックスのユーザー一覧からユーザーを選択します。


<クリックして拡大>

隔離(分離)ユーザーも表 1の計画に従って、ユーザー名、パスワード、ホームディレクトリを入力してください。


<クリックして拡大>

TCP/IPの何番ポートで接続を待つかという設定です。ここで設定したポート番号にクライアントからコネクションを張ることでDB2のインスタンスに接続できます。
必ず「構成する」を選択し、計画(表 1)に従ってポート番号を入力してください。サービス名は任意の文字列で問題ありませんが、他のサービス名と同じではいけません。
/etc/servicesには現在登録されているサービスの一覧があり、上の画面で設定した内容もこのファイルに反映されます。


<クリックして拡大>

認証タイプは、ユーザーの認証をどうやって行うかを決定します。通常は「サーバー」を選択しておく事で、このサーバーのログイン機構を利用して認証が行われます。ここでは「サーバー」を選択します。
「スタートアップ」にチェックを付けておくと、OS起動時に自動的にインスタンスが起動するようになります。(OS起動後にdb2startコマンドを実行するのと同じ)
インスタンスの自動起動は、DB2のレジストリ変数DB2AUTOSTARTによって制御されます。インストール後に、自動起動を設定したい場合は、インスタンス所有ユーザーで、以下のコマンドを実行します。

db2set -i DB2AUTOSTART=YES (自動起動有効)
  db2set -i DB2AUTO= (自動起動無効)


<クリックして拡大>

ツール・カタログDBの設定です。DB2には複数の周辺ツールが付属していますが、そのうちのいくつかを使用するには、DBへデータを格納する必要があります。ツール用のDBは別のマシンに有ってもよいですし、PHPの動作に必須ではありませんがDB2ツールが動作できるように、ここで作成しておく事をお勧めします。
ここでは「ローカル・データ?ベースを使用」を選択します。


<クリックして拡大>

ツール・カタログ用のDBを作成するインスタンスと、データ?ベース名、スキーマを選択します。ここでは先ほど作成したインスタンスを選択します。
データ?ベースは既存のものを使う事もできますが、得に理由が無ければ新規に作成する事をお勧めします。
データ?ベース名、スキーマは好きな名前を使う事ができます。得に指定が無いのであれば、デフォルトのままで問題ないでしょう。


<クリックして拡大>

DB2に注意が必要なことを管理者に知らせる場合の連絡先を指定します。
すでに別のDB2サーバーに連絡先リストを構築済みの場合はリスト・ロケーションに「リモート」を選択します。そうでなければ「ローカル」を選択します。
SMTPサーバーの設定では「通知を使用可能にする」を選択してSMTPサーバー(メールサーバー)のホスト名を入力します。


<クリックして拡大>

通知先のメールアドレスを設定します。名前とメールアドレスを入力します。


<クリックして拡大>

全て入力が完了すると、サマリーが表示されます。インスタンス名やポート番号に間違いが無いことを確認して「完了」をクリックします。後は自動的にDB2のインストールが行われます。


<クリックして拡大>

インストールが終了すると上記のような状況レポートが表示されます。全て成功で終わっている事を確認してください。失敗に終わっている項目がある場合は設定内容に誤りが有った可能性があります。セットアップ・ウィザードに戻って正しい内容に修正してください。

インストールが正常に終了したら、CD-ROMをアンマウントします。

# cd
# umount /mnt/cdrom
# exit

インストール後に少し設定をしておくと、PHPの導入がスムーズに進みます。まず、rootユーザーでDB2のライブラリの位置を/etc/ld.so.confに追記し、ldconfigを実行します。このldconfigを実行しておかないとPHPのmake installが失敗に終わります。

# vi /etc/ld.so.conf
  (次のどちらかを追加します)
/usr/IBMdb2/V7.1/lib (DB2 V7の場合)
  /opt/IBM/db2/V8.1/lib (DB2 V8の場合)
          # ldconfig
次に、実験用のサンプルデータ?ベースを作成します。インスタンス所有ユーザーでログインする必要があります。ログインしなおすか、su コマンドでインスタンス所有ユーザーになってください。suコマンドでユーザーを変更する場合は、以下のようにかならず-(ハイフン)をつける事を忘れないでください。ハイフンを忘れるとDB2の操作に必要な環境変数が正しく設定されず、DB2の操作ができなくなります。

# su - db2inst1
メモ:DB2の操作に必要な環境変数を任意のタイミングで設定するには、%7E/sqllib/db2profileというファイルをsourceコマンドもしくは、 . (ドット)を使って実行します。

インスタンス所有ユーザーになったら、以下のコマンドでサンプルデータ?ベースを作成します。

$ db2start (まだ起動していない場合のみ)
$ db2sampl
[任意のディレクトリ名]

ディレクトリを指定しない場合は、インスタンスユーザーのホームディレクトリ以下にインスタンスユーザー名と同名のディレクトリが作成され、その中にサンプルDBが作成されます。

3.2 ApacheとPHP4のインストール (Apache DSOを利用する場合)

注)Apache DSOとglibc
glibc (Linuxで使用されているC Library) Ver. 2.2より前のいくつかのバージョンには、ダイナミックロードに関する不具合が存在します。この不具合があると、ApacheのDSOモジュールとしてPHP4+DB2を利用する事が出来ないようです。(Apacheが起動しなくなる)従って、glibc 2.2より古いバージョンを使用している場合、glibcのパッケージを更新する必要があるかも知れません。

以下の手順でインストールを行ってください。

1) rootになる
$ su -

2) ソースコードを用意する
# ls
apache_1.3.27.tar.gz php-4.3.0RC3.tar.gz

3) 環境変数を設定する
# export LANG=ja_JP.ujis (DB2 V7の場合のみ必要)
# . /home/db2inst1/sqllib/db2profile (インスタンスがdb2inst1の場合)
※先頭に . (ドット)があることに注意
4) Apacheのソースを展開して、コンパイル、インストールを行う
# tar zxfv apache_1.3.27.tar.gz
# cd apache_1.3.27
# ./configure --enable-shared=max
# make
# make install
5) /usr/local/apache/conf/httpd.conf 内に以下の4行を追加する
<IfModule mod_php4.c>
  AddType application/x-httpd-php .php
  AddType application/x-httpd-php-source .phps
</IfModule>
6) PHPのコンパイル、インストールを行う
# cd ..
# tar zxfv php-4.3.0RC3.tar.gz
# cd php-4.3.0RC3
# ./configure --with-ibm-db2=/opt/IBM/db2/V8.1
  --with-apxs=/usr/local/apache/bin/apxs (実際は改行しません)
--with-ibm-db2の部分ではDB2をインストールしたディレクトリを指定します。DB2 UDB V7 for Linuxでは --with-ibm-db2=/usr/IBMdb2/V7.1/ と指定します。また、この様に--with-ibm-db2を設定してコンパイルしたPHPでないと、DB2と接続する事ができない事に注意してください。
# make
# make install
make installが終了したら、/usr/local/apache/conf/httpd.conf内に、
LoadModule php4_module  libexec/libphp4.so
という行があるかどうか確認します。
その後、PHPの設定ファイルをコピーします。
# cp php.ini-dist /usr/local/lib/php.ini

これでインストールは完了です。4章に進んでください。

3.3 ApacheとPHP4のインストール (組み込みモジュールの場合)

以下の手順でインストールを行ってください。

1) rootになる

$ su -
Password:
2) ソースコードを用意する
# ls
apache_1.3.27.tar.gz php-4.3.0pre2.tar.gz

3) 環境変数を設定する

# export LANG=ja_JP.ujis (DB2 V7の場合のみ必要)
# . /home/db2inst1/sqllib/db2profile (インスタンスがdb2inst1の場合)
※先頭に . (ドット)があることに注意

4) Apacheのソースを展開して、configureのみ行う(コンパイルはしない)

# tar zxfv apache_1.3.27.tar.gz
# cd apache_1.3.27
# ./configure --enable-module=so

5) PHPのコンパイル、インストールを行う

# cd ..
# tar zxfv php-4.3.0RC3.tar.gz
# cd php-4.3.0RC3
# ./configure --with-ibm-db2=/opt/IBM/db2/V8.1 --with-apache=../apache_1.3.27

--with-ibm-db2の部分ではDB2をインストールしたディレクトリを指定します。DB2 UDB V7 for Linuxでは --with-ibm-db2=/usr/IBMdb2/V7.1/ と指定します。また、この様に--with-ibm-db2を設定してコンパイルしたPHPでないと、DB2と接続する事ができない事に注意してください。

# make
# make install

6) PHPの設定ファイルをコピーする

# cp php.ini-dist /usr/local/lib/php.ini

7) 今作ったPHPのライブラリを使用して、Apacheをコンパイル/インストールします

# cd ../apache_1.3.27
# ./configure --activate-module=src/modules/php4/libphp4.a --enable-module=so
# make
# make install

8) /usr/local/apache/conf/httpd.conf 内に以下の4行を追加する

<IfModule mod_php4.c>
  AddType application/x-httpd-php .php
  AddType application/x-httpd-php-source .phps
</IfModule>

これでインストールは終了です。4章に進んでください。

上に戻る


4. 起動テスト

簡単な起動テストを行ってみましょう。以下の手順で行います。

1) Apacheを起動する

# /usr/local/apache/bin/apachectl start
/usr/local/apache/bin/apachectl start: httpd started

2) Apacheのプロセスが起動されている事を確認する(httpdというのがApacheのプロセスです。)
# ps auxwww| grep http
root 6069 2.0 3.0 22648 7740 ? S 14:08 0:00 /usr/local/apache/bin/httpd
nobody 6070 0.0 3.0 22588 7740 ? S 14:08 0:00 /usr/local/apache/bin/httpd
nobody 6071 0.0 3.0 22588 7740 ? S 14:08 0:00 /usr/local/apache/bin/httpd
nobody 6072 0.2 3.0 22588 7740 ? S 14:08 0:00 /usr/local/apache/bin/httpd
nobody 6073 0.0 3.0 22588 7740 ? S 14:08 0:00 /usr/local/apache/bin/httpd
nobody 6074 0.0 3.0 22588 7740 ? S 14:08 0:00 /usr/local/apache/bin/httpd


ここで、Webブラウザを起動して、http://サーバー名にアクセスし、apacheが動作している事を確認してください。正しくインストールできていれば図 1の様に表示されるはずです。

図 1 Apacheにアクセスできた場合

<クリックして拡大>


これでApacheが動いている事が確認できました。

メモ: Linux上で MozillaやNetscapeを使用していて、上記画面が英語で表示される場合はPreference内、Languagesの設定で、jaを先頭に設定してから試してください。


次にPHPの確認です。図 2の内容のファイルを/usr/local/apache/htdocs/phinfo.phpとして用意した後、WEBブラウザで、http://サーバー名/phpinfo.phpにアクセスしてみてください。

図 2 php起動テスト用のスクリプト

<? phpinfo(); ?>


正しくPHPが動作していた場合、図 3の様な画面が見えるはずです。
ここで、画面内のODBC libraryの欄にdb2が書かれている事を確認してください。

注) ここで、ODBC library欄にDB2の名前が挙がっているからといって、PHPがODBCでDB2にアクセスするという訳ではありません。 詳しくは5章を参照してください。

図 3 php起動テストスクリプトの実行画面

<クリックして拡大>

PHPも動作したので、次にApache+PHP4+DB2の動作を確認しましょう。 以下のように、/usr/local/apache/htdocs/db2test.phpというファイルを作成します。 (ユーザーID、パスワードはDB2をインストールした時の内容に修正する必要が有ります)

 
<html>
 <head>
 <TITLE>Test page for DB2+PHP+APACHE</TITLE>
<head>
<body>
<?PHP

$dbname = "sample"; $username = "db2inst1"; //あなたの環境にあわせてください $password = "password"; //あなたの環境にあわせてください echo "DB2TEST: "; $db = odbc_connect($dbname,$username,$password); if($db){ echo "CONNECT OK" . "<BR>"; odbc_autocommit($db,1); $result=odbc_exec($db,"select * from staff"); odbc_result_all($result,"border=1 BGCOLOR='#AABBCC'"); $ret=odbc_free_result($result); $ret=odbc_close($db); } else { echo "Connect Failed<BR> "; }; ? > </body> </html>


次にapachectlを修整して、Apache起動時にdb2profileを読み込む様に設定します。
# cp /usr/local/apache/bin/apachectl /usr/local/apache/bin/apachectl.org
# vi /usr/local/apache/bin/apachectl

(apachectlの先頭に、以下の4行を追加します)

# for DB2 UDB + PHP4
. /home/db2inst1/sqllib/db2profile
LANG=ja_JP.eucJP (DB2 V7ではLANG=ja_JP.ujisを指定)
export LANG
以上の修正が済んだら、Apacheを再起動してください。
# /usr/local/apache/bin/apachectl restart
まだDB2が起動していない場合は、起動します。
# su - db2inst1
$ db2start
# exit

WEBブラウザでhttp://サーバー名/db2test.phpにアクセスしてください。用意したPHPスクリプトはSAMPLEデータベースのSTAFF表を全てSELECTして表形式で表示するというものです。うまく図 4の様な画面が表示されましたでしょうか?
うまくいったなら、これでPHP+DB2の環境が整いました。あとは色々PHPの機能を試してみてください。

図 4 PHPスクリプトの実行結果

<クリックして拡大>

上に戻る


5. その他の情報
このドキュメントでは、WEBサーバーとDB2が同じマシン上で動作していますが、DB2とWEBサーバーを別のマシンに分ける場合、WEBサーバーにDB2開発クライアント(Application Development Client)を導入し、データベースに接続できるようにカタログする必要があります。カタログはクライアント構成アシスタントかCATALOGコマンドで実行できます。マニュアルのCATALOGコマンドを参照してください。

PHPからDB2を呼び出す場合、Unified ODBCという名の関数群(odbc_connect等)を使用してアクセスする事が出来ます。また、PHP内では、ODBCライブラリの一覧内にDB2が登録されていますが、これはPHPがDB2にアクセスする際にODBCを使用するという意味ではありません。PHPには、各社DB毎に違うアクセス関数が用意されています(たとえば、ORACLEとInfomixのアクセス用関数は別々に用意されている)が、比較的後期にサポートされたDBの多くはUnified ODBCというODBCにAPI仕様を似せて作られた関数群を用いてアクセスする様に作成されているようで、DB2にアクセスする場合もこれに従っています。

PHPに関する日本語での情報は、日本PHPユーザー会(http://www.php.gr.jp/)のホームページに集められています。

6. おわりに

駆け足でDB2+PHP+Apacheのインストールについて説明してきました。もしこの文章に、誤り、ご意見等がありましたら、筆者(e16420@jp.ibm.com)までお知らせください。

情報リンク

PHPホームページ
日本PHPユーザー会
DB2 Developer Domain

上に戻る