サーバー構築日記へ

Perlモジュールの導入


 今度は書籍管理をWeb上で行うことにしました。PostgreSQLのデータベース機能を使うと言うことで。
 実際の所自分が読んだ論文を表示できるだけのものでも十分役に立ったりします。ついでに中身で自分が気になるところをメモっておけると言うこと無し、と。

 最初はPHPとPostgreSQLの組み合わせでつくるつもりでしたが、私にはPHPがうまく扱えずに断念。
 そのため、Perlのモジュールを導入してデータベースとCGIを使用したコードを書くことにしました。

 ここで使用するのはPerl5とPostgreSQLとDBIとDBD::Pgです。
 作成にはLinux magazine1月号2月号の「Perlスクリプト入門」を参考にしています。

 ※PostgreSQLはソースからmakeして使用しています。RPMインストールだとかなり勝手が違うと思われますが、その辺は対応していませんしする予定もありません。


・モジュールの導入

 Perlでデータベースにアクセスするためにはモジュールを導入する必要があります。
 まず以下の場所でDBI-1.21.tar.gzを入手。これはPerlからデータベースにアクセスするための統一インターフェイスモジュールです。
 http://www.cpan.org/modules/by-module/DBI/

 # tar xvzf DBI-1.21.tar.gz
 # cd DBI-1.21
 # perl Makefile.PL

 ここでメッセージが出てきますが、別にproxyなどは必要ないので気にしなくていいです。

 # make
 # make install

 次にPostgreSQL用のモジュールであるDBD::Pg(DBD-Pg-1.12.tar.gz)を手に入れます。
 http://cpan.planetmirror.com/modules/by-module/DBD/
 ※気付いたらVer.あがってる……。これ書いてる今はDBD-Pg-1.13が最新

 インストールの前にまず環境設定が必要です。
 postgresユーザの.bashrcに以下の記述を入れてください。

 export POSTGRES_INCLUDE=/usr/local/pgsql/include
 export POSTGRES_LIB=/usr/local/pgsql/lib

 POSTGRES_LIBの場所には、libpq.soが存在することを確認してください。
 ここの設定が違うときちんと動かなかったりします。詳しくはREADMEを見てください。
 (ちなみにrpmパッケージでPostgresSQLを入れていると全く違う場所にあるはずです)

 また、makeはpostgresユーザで行います。

 # su - postgres
 $ tar zxvf DBD-Pg-1.12.tar.gz
 $ cd DBD-Pg-1.12
 $ perl Makefile.PL
 $ make

 インストールはrootで。

 $ su
 # make install

 これでデータベース管理をPerlCGIで行うことができるようになります。
 では、私が作った書籍管理CGIを紹介しておきます。
 ……これは使えることは確認していますが、エラー処理などを省いているため、そう使いやすいかどうかは疑問です。私が使えればいいというレベルの代物でしかないので。
 このソースを発展してくれる方がいれば私は大歓迎です。

 サンプル画面(登録)
 サンプル画面(リスト表示)
 サンプル画面(詳細表示)

 サンプルで紹介されている本などは別に気にしないでください(笑)必読のやつはほんとにいい本ですけどね。


書籍管理CGIのソースと設置方法
  (作成中)




※参考
 Linux magazine:2002年1月号