Red Hat Linuxをサーバパッケージでインストールすると、Apache、PHP、PostgreSQLがインストールされる。
インストール後、設定を行えばそれぞれの機能を使うことはできるが、そのままではWebページから
PostgreSQLデータベースのデータを取得して表示するなどのActiveServerPageは作成できない。
例えばPostgreSQLデータベースに接続するPHPの命令はpg_Connect()だが、これを埋め込んだ
PHPプログラムを実行すると、「その命令はサポートしていない!」と怒られてしまう。
数ある参考書のいずれも、PHPのインストール時に、PostgreSQLのサービスを有効にするように 設定してmakeファイルを作成するように書いてある。がしかし、既にインストールされているのに 再インストールなんてしたくない!でも、(私が読んだ)どの参考書にもインストール済みのPHPの 設定を変えるなんて情報は載ってなかった。
Webをさまよってるうちに、PostgreSQL対応モジュールを追加すればいいことが分かった。
以下は、その方法を紹介する。
まずはrpmコマンドで、インストールされているパッケージを確認する。
| # rpm -q -a | sort | more |
パッケージリストがソートされて表示されるので、php〜を探す。
| php-3.0.12-6 |
もしこの行の下にphp-pgsql-3.0.12-6という行があれば、既にインストールされて いることになる。無い場合は、以下の手順でインストールをしよう。
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に 作成される。これでインストールは完了である。
念のため、もう一度確認してみよう。今度はphp-pgsql-3.0.12-6という行が 現れるはずだ。
必要かどうか分からないが、マシンを再起動してしまった。Apacheの再起動だけで よかったのか、何もしなくてもよかったのかは分からない・・・
データベースyubinの中にあるyubin_tabテーブルの内容を全て表示する をいうプログラムを作り、実行した。以前はpg_Connect()行でエラーメッセージ が出ていたが、今回はちゃんと表示された。
一部の日本語が化けてしまっているが、これについては別のページで詳しく紹介する。
ちなみに、これと同じ方法でOracleのモジュールも組み込めそうである。
Oracleが組み込めるということは、Oracle専用のアプリケーションサーバ(Oracle Web Server)
が無くても、PHPでOracleデータベースのデータを取り出すプログラムが作れるということである。
当然、PL/SQLが使えなくなるので本格的なものは作れないが、簡単なシステムくらいはこれで
十分のような気がする。