PostgreSQL対応モジュールの追加

Red Hat Linuxをサーバパッケージでインストールすると、Apache、PHP、PostgreSQLがインストールされる。
インストール後、設定を行えばそれぞれの機能を使うことはできるが、そのままではWebページから PostgreSQLデータベースのデータを取得して表示するなどのActiveServerPageは作成できない。
例えばPostgreSQLデータベースに接続するPHPの命令はpg_Connect()だが、これを埋め込んだ PHPプログラムを実行すると、「その命令はサポートしていない!」と怒られてしまう。

数ある参考書のいずれも、PHPのインストール時に、PostgreSQLのサービスを有効にするように 設定してmakeファイルを作成するように書いてある。がしかし、既にインストールされているのに 再インストールなんてしたくない!でも、(私が読んだ)どの参考書にもインストール済みのPHPの 設定を変えるなんて情報は載ってなかった。

Webをさまよってるうちに、PostgreSQL対応モジュールを追加すればいいことが分かった。
以下は、その方法を紹介する。

  1. インストール済みパッケージの確認

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

    # rpm -q -a | sort | more

    パッケージリストがソートされて表示されるので、php〜を探す。

    php-3.0.12-6

    もしこの行の下にphp-pgsql-3.0.12-6という行があれば、既にインストールされて いることになる。無い場合は、以下の手順でインストールをしよう。

  2. インストール

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

    # mount /mnt/cdrom

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

    # cd /mnt/cdrom/RedHat/RPMS/
    # rpm -ivh php-pgsql-3.0.12-6.i386.rpm

    これを実行すると、pgsql.soというファイルが/usr/lib/apacheに 作成される。これでインストールは完了である。

  3. インストール済みパッケージの再確認

    念のため、もう一度確認してみよう。今度はphp-pgsql-3.0.12-6という行が 現れるはずだ。

  4. 再起動?

    必要かどうか分からないが、マシンを再起動してしまった。Apacheの再起動だけで よかったのか、何もしなくてもよかったのかは分からない・・・

  5. 動作確認

    データベースyubinの中にあるyubin_tabテーブルの内容を全て表示する をいうプログラムを作り、実行した。以前はpg_Connect()行でエラーメッセージ が出ていたが、今回はちゃんと表示された。

    一部の日本語が化けてしまっているが、これについては別のページで詳しく紹介する。

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