PostgreSQL対応モジュールの追加

PHPはデフォルトで使えるのだが、PHPからPostgreSQLに接続するためのモジュールは組み込まれていない。例えばPostgreSQLデータベースに接続するPHPの命令はpg_Connect()だが、これを埋め込んだPHPプログラム(PostgreSQL&PHPのサンプルソース1)を実行すると、「その命令はサポートしていない!」と怒られてしまう(もちろんメッセージは英語)。
数ある参考書のいずれも、PHPのインストール時に、PostgreSQLのサービスを有効にするように設定してmakeファイルを作成するように書いてある。がしかし、既にインストールされているのに再インストールなんてしたくない!でも(私が読んだ)どの参考書にもインストール済みのPHPの設定を変えるなんて情報は載ってなかった。
Webをさまよってるうちに、PostgreSQL対応モジュールを追加すればいいことが分かった。
以下は、その方法を紹介する。

1.パッケージのインストール

まずはrpmコマンドで、インストールされているパッケージを確認する。

# rpm -q -a | sort | more

パッケージリストがソートされて表示されるので、php-pgsql-バージョン番号があれば、既にインストールされていることになる。無い場合は、以下の手順でインストールをしよう。

1.インストール

Red Hat Linux 6.2Jのインストールディスクを入れ、CD-ROMドライブをマウントする。

# mount /mnt/cdrom

インストールしたいパッケージは/mnt/cdrom/RedHat/RPMS/の中にあるphp-pgsql-バージョン番号.i386.rpmである。
これをインストールするには以下のコマンドを実行する。

# rpm -ivh /mnt/cdrom/RedHat/RPMS/php-pgsql-バージョン番号.i386.rpm

インストールが済んだらApacheを再起動する。

2.動作確認

サンプルソースのようなプログラムを作り、クライアントのブラウザから表示しよう。以前はpg_Connect()行でエラーメッセージが出ていたが、今回はちゃんと表示されるはず。

2.余談

ちなみに、これと同じ方法でOracleのモジュールも組み込めそうである。
Oracleのモジュールが組み込めるということは、Oracle専用のアプリケーションサーバ(Oracle Web Server)が無くても、PHPでOracleデータベースのデータを取り出すプログラムが作れるということである。
当然、PL/SQLが使えないので本格的なものは作れないが、簡単なシステムくらいはこれで十分のような気がする。機会があったら是非試してみたい。


[ TOP ]