PHPはデフォルトで使えるのだが、PHPからPostgreSQLに接続するためのモジュールは組み込まれていない。例えばPostgreSQLデータベースに接続するPHPの命令はpg_Connect()
だが、これを埋め込んだPHPプログラム(PostgreSQL&PHPのサンプルソース1)を実行すると、「その命令はサポートしていない!」
と怒られてしまう(もちろんメッセージは英語)。
数ある参考書のいずれも、PHPのインストール時に、PostgreSQLのサービスを有効にするように設定してmakeファイルを作成するように書いてある。がしかし、既にインストールされているのに再インストールなんてしたくない!でも(私が読んだ)どの参考書にもインストール済みのPHPの設定を変えるなんて情報は載ってなかった。
Webをさまよってるうちに、PostgreSQL対応モジュールを追加
すればいいことが分かった。
以下は、その方法を紹介する。
まずは
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()行でエラーメッセージが出ていたが、今回はちゃんと表示されるはず。
ちなみに、これと同じ方法でOracleのモジュールも組み込めそうである。
Oracleのモジュールが組み込めるということは、Oracle専用のアプリケーションサーバ(Oracle Web Server)が無くても、PHPでOracleデータベースのデータを取り出すプログラムが作れるということである。
当然、PL/SQLが使えないので本格的なものは作れないが、簡単なシステムくらいはこれで十分のような気がする。機会があったら是非試してみたい。