110件を越えるバグが修正されたPHP 5.0.4,約70件のバグが修正されたPHP 4.3.11がリリースされた。いずれも早期のバージョン・アップが推奨されている。PEAR/PECL関連の話題としては,MaxDBエクステンション安定版リリース,Image_GISによるGISデータ表示などを解説する。

PHP 5.0.4正式公開

 PHP5の安定版にあたるPHP 5.0.4が,3月31日にリリースされた。しかし,リリース直後にPEARのインストールに必要なRunTest.phpが含まれていないことがわかり,4月3日に再度修正済みのアーカイブが公開された。これ以前にPHP 5.0.4を入手した場合は,再度アーカイブを入手する必要がある。

 PHP 5.0.4は安定版であるために大きな機能追加は行われていないが,110件を越えるバグ修正が行われており,PHP 5.0.xを使用しているユーザーは早期にバージョン更新することが推奨されている。機能追加・変更に関して主なものを以下に示す。

(1).Oracle Instant Clientへの対応

 従来はOracle本体に付属するクライアント・ライブラリのみに対応していたが,PHP 5.0.4以降ではクライアント環境Oracle Instant Clientに対応し,Oracleデータベースへの接続を行う環境を構築するためににOracleデータベース本体をインストールする必要がなくなった。Oracle Instant Clientは,OTN (Oracle Technology Network)から無償(登録は必要)で配布されている。Linux (Fedora Core 3)上でのインストール手順を以下に示す。

1.Oracle Instant Clientを入手・インストール

 米OTNからBasicおよびSDKパッケージを入手・インストールする。ここでは,執筆時点で最新のバージョン10.1.0.3を使用することにする

2. PHP 5.0.4のソースコードを展開し,configureを実行する

$ cd php-5.0.4
$ ./configure --with-oci8-instant-client=shared,/usr/lib/oracle/10.1.0.3/client/lib --enable-sigchild

 Oracle用エクステンションでは,通常,--with-oci8を指定するが,Instant Clientを使用する場合は,--with-oci8-instant-clientを指定する。ここでは,sharedオプションを指定し,sharedエクステンションとして作成しているが,この指定を省略することでスタティックに組み込むことも可能である。

3. PHPを構築・インストールする

$ make
$ sudo make install

4. php.iniを編集

 以下の記述をphp.iniに追加し,Webサーバーを再起動する

extension=oci8.so

5. PHPスクリプトでは,以下のようにInstant Client用の形式で接続するデータベースの指定を行う。

//ホスト名:[ポート番号][/サービス名]

 具体的には,OCILogon()関数で以下のように指定する。

$dbh = OCILogon("scott", "tiger", "foo:4321/test")

 Oracleをデータベース用サーバーで動作させ,Webサーバーからクライアントとして接続を行いたいような場合には,Instant Clientのサポート追加は歓迎されるであろう。

 なお,このPHP ウォッチで度々とりあげているデータベース用共通API「PDOエクステンション」においてもOracle Instant Libraryがサポートされている。この場合は,以下のようにconfigureに--with-pdo-oci=instantclient,プレフィックス,バージョン番号の形式で指定を行う。

./configure --with-pdo-oci=instantclient,/usr,10.1.0.3

 ただし,PDO_OCIはまだβ版であり,実運用できるレベルには達していない。PDOは,開発中のPHP 5.1以降でデータベース接続用APIとして標準サポートされる予定となっており,将来的には標準的なデータベース接続用APIとして使用されると思われる。

(2).マルチバイト関連ライブラリの更新

 マルチバイト文字の処理を行うmbstringエクステンションにバンドルされているマルチバイト対応の正規表現ライブラリonigurumaのバージョンが3.7.0に更新され,Unicode対応などが強化された。同時にマルチバイト文字列の処理を行うlibmbflに見つかった複数のバグも修正されている。

PHP 4.3.11も公開

 PHP 5.0.4と同じ日にPHP4の最新リリースPHP 4.3.11が公開された。このバージョンでは,約70のバグの修正が行われている。これらはいずれも致命的なバグではないが,swf_openfile()でセーフモードの制約をバイパスされるセキュリティ上の問題も修正されており,PHP 4.3.xを使用しているユーザーは新しいバージョンへ更新することが推奨されている。このバージョンにおいてもPHP 5.0.4と同様にOracle Instant Clientのサポート追加,libmbflの更新が行われている。

 次にPEAR/PECL関連の話題として,オープンソースのデータベースMaxDB用PHPエクステンション,Image_GISによるGISデータ表示などを解説する。