Zend Core for IBM - PHP開発者のためのガイド・ツアー

PHPとIBM CloundscapeおよびDB2 on Linux入門

Linux™サーバーにPHP5をセットアップしたいけれど、セットアップ方法を勉強する時間がないと考えたことはありませんか。この記事では、IBM® Cloudscape™データベース・サーバーを含む業界初の統合PHP環境を使用したPHP 5環境のインストール手順を解説します。Zend Core for IBMを使用すると、完全な開発および展開環境をゼロからセットアップするのに比べて、インストールと構成が大幅に単純化されます。Zend Core for IBMは、よく使用されるPHP拡張およびDB2®クライアント・ライブラリーも備えているので、DB2 Universal Database™ (UDB)サーバーに接続できます。Zend Coreのサポートは、PHP製品およびサービスの大手プロバイダーであるZend Technologiesから入手できますが、これは無償ダウンロードであり、IBM CloudscapeまたはDB2 UDB向けのWebアプリケーションを構築したいPHP開発者にとって時間の節約になります。

Grant Hutchison (ghutchis@ca.ibm.com), Product Manager, Cloudscape and IBM Database Developer Initiatives, IBM Toronto Lab

Author photoGrant Hutchisonは、プロダクト・マネージャーとして、DB2 UDBやCloudscapeなど、IBMデータベース・サーバーに関するアプリケーション開発コミュニティーのサポートを担当しています。ソフトウェア・エンジニアリングで学位を取得しており、IBMのトロント研究所にて、過去13年間、様々な技術的、管理的業務に従事してきました。



Stewart Nickolas (nickolas@us.ibm.com), Emerging Technologies, IBM

Author photoStewart Nickolasは、過去5年間、IBMの新興技術グループに所属し、WebサービスやWebサービス用のEclipseベース・ツール、様々なインターネット・クライアント技術などを担当してきました。



2005年 7月 14日

Zend Core for IBMについて

Zend Core for IBMは、IBMとZend Technologiesが共同で設計・開発した製品です。この製品には、AIX®とLinuxも含め、さまざまなプラットフォーム用のPHP 5のバイナリーが含まれています。また、Apache Derbyデータベース・サーバーの市販バージョンであるIBM Cloudscapeデータベース・サーバーと、Webアプリケーションの開発と展開をサポートするDB2 UDBバージョン8.2 Runtime Clientsがバンドルされています。Zend Coreには、次のような有用なPHP言語拡張も多数含まれています。

  • ibm_db2 ? IBM DB2 UDBサーバーおよびIBM Cloudscape用の新しいネイティブPHP拡張
  • simplexml ? SimpleXML拡張は、XMLをオブジェクトに変換するための非常にシンプルで使いやすいツールセット
  • などなど・・・

マニュアルは?

Zend Core for IBMの参考書として現在入手可能なのは、次の2つガイドです。

  • Zend Core User Guide
  • Zend Core Installation and Maintenance Guide

どちらもhttp://www.zend.com/core/network/resources.phpでPDFファイルで入手できます。

Linux(x86)へのインストール

使用するオペレーティング・プラットフォームに応じた正しいバイナリー・バージョンのZend Core for IBMをダウンロードすることが重要です。この例では、Linux x86ディストリビューション、すなわち、NovellのSUSE LINUX Enterprise Server 9ディストリビューションを使用します。ダウンロードするファイルには、ZendCoreForIBM-v1.1.1-Linux-x86.tar.gzというような名前が付いています。

Zend Core for IBMのインストールを試みる前に考慮すべき前提条件がいくつかあります。サポートされるWebサーバーはApache 1.3.x(preforkモードのみでコンパイル)とApache 2.0.x(preforkモードのみでコンパイル)です。

現在サポートされているZend Core for IBMの動作環境は次のとおりです。

  • Linux(x86およびx86_64)
  • Linux on POWER
  • IBM AIX v5.2以降

Zend Core for IBMには、Webアプリケーションとして管理コンソールが含まれています。サポートされているブラウザーは次のとおりです。

  • Microsoft® Internet Explorer 5.5以上(もちろん、Windows™ 上)
  • Netscape 7以上
  • Mozilla 1.7以上
  • Firefox 1.0以上(これは、著者たちが使用しているブラウザーです)
リスト1. Linuxでのインストール手順
Unpack the product files in a temporary directory
$ tar -xzvf ZendCoreForIBM-v1.1.1-Linux-x86.tar.gz
$ cd ZendCoreForIBM-v1.1.1-Linux-x86
Start the graphical Zend Core for IBM installer (as root) 
$ ./install
(or) Start the tty-based Zend Core for IBM installer (as root)
$ ./install-tty

After you accept the license terms, 
you will be asked to specify the default installation directory
/usr/local/Zend/Core 
(default location - this can be changed during installation)

Set a password for the Zend Core Web based administration tool
your-password

(optional)
Setup you Zend Core Network User ID and Password.
You will be given the option of when the Zend Core 
updater will check each day for updates.

Install the IBM DB2 UDB Runtime Client Version 8.2 
This step will ask the following 
(defaults are shown, but can be changed):

DB2 client instance user name (db2inst1)
DB2 client instance group name (db2iadm1)
DB2 client instance home directory (/home/db2inst1)
Password for DB2 client instance user (user-defined)

Install IBM Cloudscape v10 (yes/no)

(optional - but recommended)
Specify the location of your Web Server, 
if you have an Apache 1.3.x or 2.x Web Server 
already installed it will be detected.
In the installation the Apache 2.0.49 web server is 
installed from the SLES 9 installation CDs. 
YAST is used to install Apache and its 
related packages (apache2-prefork, apache2-worker, 
libapr0 - Apache Portable Runtime Library).

The installer will then ask which installation method 
should be used to enable PHP for your Web Server.
The options include: Apache module, FastCGI, CGI 
(Apache module is the recommended method).

Finally, the installer will ask you to select a virutal 
server to run the Zend Core for IBM Web Administration console.

注:CloudscapeでPHPアプリケーションを構築・展開する予定がある場合は、IBM DB2 UDB Runtime ClientとIBM Cloudscape v10をインストールする必要があります。

インストールの確認

インストールを確認するには、Webサーバーが起動していることを確認した後、サポートされているブラウザーでhttp://localhost/ZendCoreを開きます。もちろん、使用環境の仮想サーバーとして正しいホスト名とポートがセットアップされているはずです。

図1. Zend Core for IBM - ログイン画面
図1. Zend Core for IBM - ログイン画面

IBM Cloudscapeを使用したPHPアプリケーションの展開

WebベースのZend Core for IBMコンソールは、Cloudscape Network Serverと対話するための使いやすいインターフェースとなります。

Cloudscapeの起動と停止

Zend Core for IBMをインストールしたWebサーバーを起動して、Control Centerにログインします(例: http://localhost/ZendCore)。コンソールからConfiguration→Cloudscapeタブを選択して、Cloudscapeサーバーを起動します。

図2. Zend Core for IBM - Cloudscapeネットワーク・サーバー管理
図2. Zend Core for IBM - Cloudscapeネットワーク・サーバー管理

グラフィカルなWeb管理コンソールから、Zend Core for IBMに含まれているインストール済みコンポーネント(およびバージョン)をいつでも確認できます。Control Center->Updatesタブ

図3. Zend Core for IBM - コンポーネントの確認
図3. Zend Core for IBM - コンポーネントの確認

Cloudscape Network Serverデータベースを起動および停止するためのシェル・スクリプトも用意されています。シェル・スクリプトは、インストール・ディレクトリー(たとえば、/usr/local/Zend/Core/sbin)にあります。

  • cloudscape.rc {start|stop|restart}

ネットワーク・サーバー・モードのCloudscapeのデフォルト・ポートは1527であり、これは、使用するCloudscapeデータベースに接続URLで接続するときに重要になります。

Cloudscapeデータベースの作成

Cloudscapeデータベースを作成するための最も簡単な方法は、Zend Core for IBMインストール・ディレクトリーの/Zend/Core/sbinディレクトリーにあるcreate_cloudscape_database.shシェル・スクリプトを使用することです。

create_cloudscape_database.sh -d database name [-h host] [-n port] [-u user] [-p password]

データベース名は唯一の必須パラメーターであり、その他のパラメーターのデフォルト値は次のとおりです。

  • -h (localhost)
  • -p (1527)
  • -u (admin)
  • -p (admin)

注:Cloudscapeデータベースの作成を試みる前に、Cloudscape Network Serverが実行していることを確認してください。

helloという名前のCloudscapeデータベースを作成するコマンドは、次のようになります。

create_cloudscape_database.sh -d hello

helloデータベースは、次のディレクトリーに物理的に作成されることにも注意してください。/usr/local/Zend/Core/var/cloudscape/hello。

Cloudscapeデータベースをドロップ(削除)するには、ディレクトリーの内容を、サブディレクトリーも含めて削除します。

Cloudscapeが持つ多くの優れた特長の1つは、データベースがプラットフォーム独立であるため、データベースを適切なディレクトリーに移動するだけで、CloudscapeデータベースをZend Core環境に移動できることです。

Cloudscapeデータベースのポピュレート

データベースを作成したら、Cloudscape ijスクリプティング・ツールを使用するか、テーブル作成およびデータ追加用のDB2のネイティブ・インターフェースを使用して、データを追加することができます。

ijは、Cloudscapeのインタラクティブ・スクリプティング・ツールです。これは、Cloudscapeデータベースに対してスクリプトを実行するためのシンプルなユーティリティーです。ijはJavaアプリケーションであり、コマンド・ウィンドウから起動します。

helloデータベースに接続して、customer_dataという名前のテーブルを作成し、データを追加しましょう。

#cd /usr/local/Zend/Core/var/cloudscape/hello
#/usr/local/Zend/Core/Cloudscape_10.0/frameworks/NetworkServer/bin/ij.ksh
ij version 10.0
ij>

次に、次のようなijコマンドを使用して、組み込みドライバーを使用するようにijに指示する必要があります。

ij>driver 'org.apache.derby.jdbc.EmbeddedDriver';

次に、connectコマンドを発行して、データベースに接続します。

ij>connect 'hello;user=admin;password=admin;';

ijを使用してSQLスクリプト・ファイルを実行することができます。次に、hello.sqlという名前の新しいファイルを作成します。

ファイルhello.sqlの内容

>
create table customer_data (
customer_id int NOT NULL,
first_name varchar(50),
last_name varchar(50),
address varchar(50),
PRIMARY KEY (customer_id)
);

ここで、スクリプトを実行します。

ij>run 'hello.sql';

ij>insert into customer_data values (1, 'Hello', 'World', 'World Address');

ij>insert into customer_data values (2, 'Stewart', 'Nickolas', 'United States of America');

ij>insert into customer_data values (3, 'Grant', 'Hutchison', 'Canada');

最後に、ijを終了するためにexitと入力します。

おめでとう。Cloudscapeデータベースを作成して、テーブルにデータ行を追加できました。これで、単純なPHPアプリケーションを組み合わせれば、ブラウザーにデータを表示することができます。

接続のテスト

Cloudscapeデータベースを作成して、サンプル・データを追加したところで、次のタスクは、IBM DB2、Cloudscape、およびPHP用のibm_db2拡張として入手可能なApache Derby関数を使用することです。データベースに接続してデータを取得するには、ネイティブDB2 PHPドライバーを使用します。

作成したCloudscapeデータベースに接続するには2つの方法があります。すなわち、カタログ接続と非カタログ接続です。

カタログ化されていないCloudscapeデータベース接続を使用して接続するには、db2_connect() APIを使用します。カタログ化されたデータベースとカタログ化されていないデータベースの違いについては、Zend Core for IBMマニュアル(http://localhost/ZendCore/index.php?frame=documentation)を参照してください。

図4. Zend Core for IBM - オンライン・マニュアル
図4. Zend Core for IBM - オンライン・マニュアル

Native DB2 and Cloudscape PHP拡張を使用してPHPスクリプト・ファイルを作成する前に、拡張がPHP環境内で有効になっていることを確認してください。Zend Core for IBMは言語拡張を確認するためのグラフィカルな管理インターフェースとなります。次の図で、ibm_db2がインストールされていて、アクティブになっていることに注目してください。アクティブな言語拡張は緑色のインジケータで示されます。

図5. Zend Core for IBM - PHP拡張
図5. Zend Core for IBM - PHP拡張

これで、PHP Webアプリケーションの開発と展開を行う準備ができました。リスト2のコードを、Webアプリケーション・サーバーの適切なhtdocsディレクトリーにコピーしてください。

リスト2. Cloudscape PHP Webアプリケーションのテスト(hello.php)
<?php

$database = "hello";
$hostname = "localhost";
$port = 1527;
$user = "admin";
$password = "admin";

$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;";
$conn_string .= "UID=$user;PWD=$password;";

try {
    $conn = db2_connect($conn_string, '', '');
    if (! $conn) {
         echo db2_conn_errormsg();
    } else {
      $result = db2_exec($conn, "select * from customer_data");
         if ($result) {
           while ($row = db2_fetch_both($result)) {
             echo "Hello, ".$row[1]." ".$row[2]."
"; } } db2_close($conn); } } catch (Exception $ex) { echo $ex; } ?>

完全なPHPソリューション

組み込みデータベース・サーバーIBM Cloudscapeを使用し、Zend Core for IBM製品を使用して完全に実装された完全なPHP Webアプリケーションができました。

図6. Cloudscapeを使用する'Hello World' PHPデータベース・アプリケーション
図6. Cloudscapeを使用する'Hello World' PHPデータベース・アプリケーション

まとめ

新しいZend Core for IBM製品のクイック・ツアーをお楽しみいただけましたか。Cloudscapeは通常、スタンドアロン、クライアント/サーバー、またはWebベース・アプリケーションなど、Javaアプリケーションの展開のためにだけ使用されます。CloudscapeのようなJavaデータベース・サーバーを使用して、PHP Webアプリケーションの開発と展開を行うことも可能です。

より高いスケーラビリティーとより高度なデータベース・サーバー機能が必要な場合は、同じPHPアプリケーションを展開して(ごくわずかな変更を加えて)、DB2 UDBサーバーを使用することもできます。DB2 UDBサーバーは、iSeries™、z/OS®、Linux、UNIX、Windowsなど、さまざまなプラットフォームで使用できます。PHP開発コミュニティーは成長を続けていて、言語自体もコミュニティー・ベースの技術革新を通じて進化しています。Zend Core for IBMを使用したアプリケーションの展開の途上で何か問題に突き当たった場合は、Zendから直接サポートを受けることができます。

Zend Core for IBMと新しいNative DB2 and Cloudscape extension for PHPには、この紹介記事では詳しく述べることができなかった多くの特長と機能があります。

参考文献

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management, Linux
ArticleID=268255
ArticleTitle=Zend Core for IBM - PHP開発者のためのガイド・ツアー
publish-date=07142005