初出:SoftwareDesign 1998/12月号 「特集 はじめてのPlamo Linux 簡単システム構築術」
『Plamo LinuxにおけるPostgreSQL DBMSサーバ』
くわむらじゅん
JuK@YOKOHAMA.Email.Ne.jp
最近、Empress, InterBase, Informix, Sybase,
Oracle など商用のRDBMS(リレーショナル・デー
タベース・マネージメント・システム)の Linux
版が次々と発表となり、来るべき時代が来たのだ
なと感慨もひとしおです。
PostgreSQLはSQL準拠、S/C(サーバ/クライア
ント)型、トランザクションを持つORDBMS(オブジェ
クト・リレーショナル・データベース・マネージ
メント・システム)です。しかも、オープンソース
でライセンスフリーです。
Plamo Linux 1.3(以下Plamo)にはインストール・
コマンド一発で始められるPostgreSQLパッケージ
が収められています。これまでに使ってみようと
思いながらインストールがおっくうで手が出なかっ
たという方は、是非この機会に使ってみてくださ
い。
PostgreSQL(Postgres95)については、SD誌上で
も石井達夫さんにより何回か取り上げられました
ので[1]、もう皆様にはおなじみのことでしょう。
ここではPostgreSQLと縁のある2つの入門書と、
インターネット上の情報へのポインタを記すに留
めます。
RDBMSの入門書としては、POSTGRES開発プロジェ
クトの前に、RDBMS開発の草分けとして有名な
INGRES開発プロジェクトについてふれた増永良文
先生のRDBMS入門書があります[2]。また、ORDBMS
については、POSTGRES開発指揮に携わったストー
ンブレーカー教授本人によって書かれたものがあ
ります[3]。
インターネット上の本家PostgreSQLサイト:
http://PostgreSQL.org/
石井達夫さん主催pgsql-jp ML(日本語
PostgreSQLメーリングリスト)のホームページ:
http://www.sra.co.jp/people/t-ishii/PostgreSQL/
いちろうさんを座長として進行中の文書和訳
プロジェクト:
http://www.imasy.or.jp/~ichiro/postgres/ml.html
堀田倫英さんによる和訳文書:
http://www.remus.dti.ne.jp/~sim/postgres/index.html
まえだみつひろさんによる和訳文書:
http://pg.cni.co.jp/
1. PostgreSQLパッケージについて
Plamo版PostgreSQLパッケージは、
PostgreSQL-6.3.2をベースに構築した
Linux-ELF(libc5)版の実行環境を含みます。
jumbo_patchを適用しEUC_JPオプションでマルチ
バイト指定して構築してます。プリプロセッサへ
の日本語パッチや日本語化フロントエンド・プロ
グラム、日本語オンライン・マニュアルなど、日
本語化された材料をできるだけ取り入れています。
インストールすると、/usr/local/pgsqlをホー
ム・ディレクトリとするpostgres管理アカウント
が作成されます(以下このホームディレクトリを
~postgres/ で表します)。日本語のドキュメント
類は/usr/doc/pgsql/japanese/に展開されます。
また、~postgres/{contrib,examples}/にはユー
ザの貢献によるファンクション類や教本、例題、
テスト、言語インターフェース、および、埋め込
み言語などできるだけすぐに使えるようにしてあ
ります。
なお、パッケージに関する著作権および使用許
諾については附属の文書に従い、著者、製作者な
らびに関係者はいかなる保証もいたしません。詳
細については/usr/doc/pgsql/ の下の文書などを
ご覧下さい。
2. PostgreSQL パッケージの構成
Plamo版PostgreSQLパッケージは二つのアーカイ
ブから成ります。一つは本体とそのドキュメント
類(pgsql632.tgz)、もう一つは例題、言語インター
フェース、貢献ファンクションなど
(pgexp632.tgz)です。共にCDROMの
contrib/Database/に収められています。
この本体パッケージに含まれるディレクトリ構
成は以下のようになります。('->'はシンボリッ
クリンク)
postgresホームディレクトリ
/usr/local/pgsql/
|
|- bin/ 実行モジュール
|- data/ データベースおよびその属性
|- include/ アプリケーション開発用ヘッダファイル
|- lib/ ランタイムライブラリおよび開発用ライブラリ
|- apps/ ユーティリティ/アプリケーションプログラム
|- doc -> /usr/doc/pgsql/ ドキュメント
オンライン・マニュアル
/usr/local/man/
/usr/local/man/ja_JP.ujis/
インターフェース・モジュール(Perl5,Ruby,Python)
/usr/lib/perl5/
/usr/local/lib/ruby/
/usr/local/lib/python1.5/
属性データおよびデータベース
/usr/local/pgsql/data/
|
|- base -\ データベース・ディレクトリ
|- postgres/ postgresデータベース
|- template1/ 雛型データベース
文書
/usr/doc/pgsql/
|
|- japanese/ 日本語版の文書
|- migratoin/ 旧バージョンからの移行手順
|- pgaccess/ PGACCESS GUI
|- readline -> ../readline/ GNU readline
|- html/ HTML書式文書
|- ps/ PostScript書式文書
また,例題パッケージに含まれるディレクトリ構
成は以下のようになります。
postgresホームディレクトリ
/usr/local/pgsql/pgsql/
|
|- contrib/ コントリビューション・プログラム(ソース附属)
|- examples/ チュートリアル、例題、ベンチマーク等
コントリビューション・プログラム
/usr/local/pgsql/contrib/
|
|- apache_logging/ Apache WEBサーバのロギング
|- array/ 配列反復関数
|- datetime/ 日付関数
|- int8/ 64ビット整数演算
|- ip_and_mac/ IPおよびMACアドレスの拡張
|- linux/ バックエンド起動シェル
|- miscutil/ アサートチェックその他
|- pginterface/ C/4GL
|- sequence/ 通番設定
|- soundex/ soundex関数
|- spi/ トリガー関数他
|- string/ 文字列変換関数
|- unixdate/ 整数から日付への変換
|- userlock/ ユーザ・ロック
|- bigtext/ 巨大オブジェクト正規表現検索
言語インターフェース
/usr/local/pgsql/examples/interface/
|
|- libpq/ libpq Cライブラリ
|- libpq++/ libpq++ C++ライブラリ
|- ecpg/ C言語プリプロセッサ
|- jdbc/ JAVA JDBC postgresqlドライバ
|- odbc/ ODBC PsqlODBCドライバ
|- python/ Python PyGreSQLモジュール
|- perl5/ Perl5 Pgモジュール
|- ruby/ Ruby postgresモジュール
埋め込言語
/usr/local/pgsql/examples/pl/
|
|- tcl/ PL/Tcl
テストおよびベンチマーク
/usr/local/pgsql/examples/test/
|
|- bench/ ウィスコンシン・ベンチマーク
|- performance/ パーフォーマンス・テスト
|- regress/ リグレッション・テスト
|- suite/ テスト・スーツ
文書
/usr/doc/pgsql/
|
|- interfaces/ 他言語インターフェース
|- pl/ 埋め込言語
なお、/usr/local/pgsql/apps/utilsディレクト
リには以下のおまけがあります。pkg2db.plと
daysfromとはPostgreSQLのバックエンド・サーバ
(postmaster)が走っている状態で使います。
postmasterが走っているかどうかはpgsqldを引数
なしで実行すると確認できます。
pkg2db.pl
インストールされた Plamoのパッケージのリス
トをデータベースに登録するプログラムです。
(マシンによっては登録に数時間かかることがあ
りますのでご注意下さい。)
使い方
pkg2db.pl [-i] ...
-i: 指定するとテーブルを作り直します。
...: パッケージファイル名(複数可能です)
daysfrom
PostgreSQLを利用して日数を数えるシェル・スク
リプトです。あれから何日たったかな?来年のお
正月まであと何日かなというときに使えます。
使い方
daysfrom []
(Format for days: YYYY-MM-DD or MM/DD/YYYY)
pgsqld
postmasterバックエンド・プログラムの始動と
終了を行なうシェル・スクリプトです。
使い方
pgsqld {start|stop}
start: postmasterを起動します
stop: postmasterを停止します
csvtopg
CSV(カンマ区切り値)を PostgreSQL のタブ区切
りに変換するプログラムです。CSV で出力した表
計算シートをこのプログラムで変換すれば、
PostgreSQL の copy コマンドでテーブルに登録
することができます。
使い方
csvtopg [-s] [-c] [-q] [-n] [-h] [file ...]
-s : specify output separator(default: tab code)
-c : specify input separator(default: comma ',')
-q : specify quote code(default: double quote '"')
-n : specify null value character(default: '\N')
-h: show help
3. インストールの仕方
ここでは、端末の入出力は字下げして示してあ
ります。プロンプトの表示は、
'#'はrootで実行するコマンド
'%'は一般ユーザ(postgres 管理ユーザも含む)でのコマンド
'=>'は psql コマンドモード
のように識別してます。コマンド行では、
オプションは '[' と ']'、
任意の文字列は '<' と '>'
で囲みます。
ホーム・ディレクトリはCシェル表記し、
'~/'は現行ユーザのホームディレクトリ、
'~postgres'はpostgresホームディレクトリ
(/usr/local/pgsql/)
を表します。
まず、pgsql632.tgzをインストールします。
/usr/local/の下に10MB程度の空き領域があるこ
とをを確認して下さい。ただし、データベースに
沢山のデータを登録したい場合には、もう一桁く
らいは余裕をみて下さい。ご自分のデータベース
にインデックスの作成も予定しているのでしたら、
大雑把に見積もってもとのデータの大きさより一
桁大きいくらいの容量を確保しておいた方が無難
です。たとえば、アプリケーションパッケージの
日本全国新旧郵便番号データベース検索システム
pgpost(石井達夫さんによる)は、登録に約40MBの
ディスク容量が必要です。Plamo版PostgreSQLパッ
ケージはCDROMのcontrib/Database/にあります。
インストールはrootアカウントにて、
% su - root
# mount /cdrom (*1)
# cd /cdrom/contrib/Database
# installpkg pgsql632.tgz
を実行します。
(*1) /etc/fstabに
/dev/cdrom /cdrom iso9660 user,ro,noauto,exec 1 1
の記述があるのでオプションとか指定しなくても
マウントできます。
インストーラによって、postgresユーザと
postgresグループの登録がされ、PostgreSQL実行
環境が出来上がります。実体は
/usr/local/pgsql/の下に、文書は
/usr/doc/pgsql/の下にインストールされます。
そして、pgsqldシェルスクリプトによって
postmasterが起動されます。これでPostgreSQLが
使える状態となります。
PostgreSQLの管理作業はrootではなくて、
postgresという管理用ユーザで行なうようご注意
下さい。
# su - postgres
インストールされた状態ではpostgresアカウン
トにはパスワードが設定されていないので、root
からしかsuできません。一般ユーザからpostgres
アカウントに直接suしたい場合は、rootになって
postgresアカウントにパスワードを付けて下さい。
パスワードの付け方は、
# passwd postgres
で、プロンプトに従って設定します。
PostgreSQLのパスワード認証を用いない場合は、
PostgreSQLを利用するユーザはあらかじめ
Linuxのシステム上にアカウントを持っていなけれ
ばなりません。管理用のユーザ(postgres)は登録
済ですが、実際にデータベースを利用する際には、
管理用のアカウントではなく、利用するユーザを
システムに登録して、そのユーザ権限から利用す
るようにしましょう。
一般ユーザからPostgreSQLを利用するための準備
は次のような手順で行います。
一般ユーザ(例えばkuu)がPostgreSQLデータベー
スを利用できるように登録する場合は、postgres
管理ユーザにsuして、
> su - postgres
% createuser kuu
を実行し、次のようにプロンプトに従ってユーザ
登録を行ないます。
Enter user's postgres ID or RETURN to use unix user ID: 10001 -> <=
Is user "kuu" allowed to create databases (y/n) y <=
Is user "kuu" allowed to add users? (y/n) n <=
createuser: kuu was successfully added
don't forget to create a database for kuu
そして、一般ユーザ(ここではkuu)のデータベー
スを初期化して作るために、
% createdb kuu
を実行します。PostgreSQLではデータベース毎に
データベースの名前のディレクトリができます。
(この場合は ~postgres/data/base/kuu/ ができ
ます。)
★バージョンアップ時の注意★
このパッケージは初期データベースも含みます
ので、すでにPostgreSQLをお使いの場合は、イン
ストール前にバックアップをとっておいて、イン
ストール後にそれをリストアして下さい。お使い
になっているデータベースの上からこのパッケー
ジをインストールすると元のデータベースは使え
なくなります。ダンプとリストアには、それぞれ
pg_dumpコマンドとpsqlコマンドを使います。
4. フロントエンド・プログラム
PostgreSQLを利用するための基本的なフロント
エンド・プログラムはpsqlというキャラクタ指向
のプログラムです。また、pgaccessというGUIも
あり、フォーム・デザイナやクエリ(問い合わせ)・
デザイナの機能を持ちます。
ktermなど日本語EUCの表示が可能な端末であれ
ば、日本語で登録されたデータを表示することが
できます。また、kinput2などによる入力が可能
であれば、日本語のデータを入力することも可能
です。さらに、psqlの代わりにpsqljを使うと日
本語ヘルプ(堀田倫英さん訳)を見ることもできま
す。なお、psql と psqlj は GNU readlineをリ
ンクしてありますので入力行編集もできますが、
このため readline共有ライブラリがインストー
ルされている必要があります。(Plamo では、
/var/adm/packages/readln21 というファイル
ができていれば readline はインストールされ
ているはずです。)
% psqlj
POSTGRESQL の会話的 SQL モニターへようこそ。
POSTGRESQL の著作権、については COPYRIGHT ファイルをご覧ください。
\? で \ コマンドのヘルプを表示します。
\q で終了します。
\g または ';' で終わらせると、クエリを実行します。
現在データベース 'postgres' に接続されています。
postgres=>
たとえば、
postgres=> \?
でpsqlのヘルプコマンドを探し、
postgres=> \dS
でシステムテーブル/インデックスを表示し、
その内の一つのテーブル内容を、
postgres=> select * from pg_user;
のようにして表示させてみることもできます。
また、GUIを持つフロント・エンドプログラムとし
てpgacessが使えます。Plamo版では、pgaccessは
pgaというスクリプトから起動できます。pgaccess
ではデータベースの検索の他、フォームの設計、
クエリの設計、および、報告書生成が可能です。
日本語のパッチ(石井達夫さんによる)を当ててま
すので、日本語でのデータの検索も可能です。
% pga
図 1 は pgaccess のクエリ・デザイナを使ってい
る時の様子です。
図 1 pgaccess のクエリ・デザイナの利用
5. 例題パッケージ
pgexp632.tgzには教本/ベンチマーク/言語イ
ンターフェース例などがありますが、これらの全
ての動作をテストしたわけではないので、動かな
いものもあるかもしれません。
インストールはrootアカウントにて、
# cd /cdrom/contrib/Database
# installpkg pgexp632.tgz
を実行します。この実行によって
/usr/local/pgsql/の下に実体(examples/と
contrib/)が展開されます。また、
/usr/doc/pgsql/の下に文書がインストールされ
ます。
5.1 教本をやってみましょう
~postgres/example/tutorial/には、基本的な
SQLからファンクションの利用までを行なう、教
本が含まれます。'-s'オプションでpsqlを起動し、
psqlコマンドの'\i'でSQLコマンドファイルを読
み込みます。
% cd ~postgres/example/tutorial/
% psqlj -s
POSTGRESQL の会話的 SQL モニターへようこそ。
POSTGRESQL の著作権、については COPYRIGHT ファイルをご覧ください。
\? で \ コマンドのヘルプを表示します。
\q で終了します。
\g または ';' で終わらせると、クエリを実行します。
現在データベース 'postgres' に接続されています。
postgres=> \i basics.sql
すると、指定したファイル記述されているSQLコ
マンドを表示して一旦停止し、リターンキーを押
すと実際にそのSQL文の実行が行なわれ結果が表
示されます。
5.2 テストおよびベンチマーク・ツール
テストおよびベンチマーク・ツール類は
~postgres/example/test/の下でそれぞれサブディ
レクトリに分かれています。それぞれのサブディ
レクトリにあるreadme.jを参考にベンチマークを
行なってみて下さい。
o リグレッション・テスト
o ウィスコンシン・ベンチマーク
o パーフォーマンス・テスト
o テスト・スーツ
とくに、benchに関してはpgsql-jp MLで結果の集
計をしていますのでふるってご参加下さい。詳し
くはpgsql-jp MLホームページを御覧ください。
5.3 言語インターフェース
各言語インターフェースを使ったプログラム例
が~postgres/examples/interfaces/の下に展開さ
れます。ここには、以下の言語インターフェース
があります。
o libpq C ライブラリ
o libpq++ C++ ライブラリ
o ecpg C言語 プリプロセッサ
o JAVA JDBC postgresql ドライバ
o PsqlODBC ドライバ
o Python PyGreSQL モジュール
o Perl5 Pg モジュール
o Ruby postgres モジュール(*2)
(*2) Rubyのpostgresモジュールは元の
PostgreSQLには含まれていません。
5.4 埋め込み言語
Tclの埋め込み言語PL/Tclが
~postgres/examples/pl/tcl/の下にあります。文
字通りSQLにTclのコマンドを埋め込んで記述する
ことができます。
ここのtest/サブディレクトリにはPL/Tcl
のためのテスト・スーツがあります。
5.5 ファンクションの登録
ユーザの貢献によるファンクション類は
~postgres/contrib/の各サブディレクトリに用意
されてます。C言語のファンクションが主ですが、
それらのファンクションのローダブル・オブジェ
クトは~postgres/lib/modules/に作成済です。登
録するには、
% cd ~postgres/contrib/
% psql -e < .sql
のように用意されている登録用のSQLを実行しま
す。
これらのファンクション類を雛型データベース
(template1)に登録しておくと、その登録以後に
createdbで作成されるデータベースで登録された
ファンクションが利用可能となります。
6. ネットワークからの利用
Plamo版PostgreSQLはTCP/IPネットワークからの
アクセスができるように'-i'オプションを付けて
postmasterを起動してます。アクセス制御は
~postgres/data/pg_hba.confファイルに記述しま
す。インストール時の設定では、ネットワーク経
由でアクセスを許可するのはローカルネットワー
ク上のホストのみで、かつパスワード認証が必要
です。
パスワード認証の設定はpg_hba.confの最後の行
にあります。
#Format:
# host DBNAME IP_ADDRESS ADDRESS_MASK USERAUTH [AUTH_ARGUMENT]
host all 192.168.200.0 255.255.255.0 password pgpasswd
この例では、ローカルネットワークというのは、
24ビットでマスクされるCクラスのネットワーク
になってます。
インストールされた状態では、postgresユーザが
postgresというパスワードで登録されています。
このパスワードは、そのままでも使えますが、変
更することをお奨めします。パスワードの変更や
新たな登録は、postgres管理ユーザとなり
~postgres/data/ディレクトリでpg_passwdコマン
ドを実行します。
% su - postgres
% cd ~/data
% pg_passwd pgpasswd
これで、ユーザのパスワードを登録できます。こ
の際、指定するユーザのデータベースは予め作成
されている必要があります。そして、このパスワー
ドに登録されたユーザ名でデータベースにアクセ
スするには、psqlコマンドの場合、
% psql -u [-h ]
のように'-u'オプションをつけて実行します。ユー
ザ名とパスワードを聞いてきますのでプロンプト
に従って入力下さい。その他のクライアント・プ
ログラムでも、それぞれの方法でアクセスできま
す。
------------------------------------------------------------------------
Apache, PHP/FI との連携(Apache+PHP/FI+PostgreSQL)
1. Apache,PHP/FIパッケージについて
Plamo版ApacheウェブサーバはPHP/FI-2.0.1モジュー
ルを組み込みこんだApache-1.2.6です。この
PHP/FIはPostgreSQL-6.3.2と、GD-1.3のインター
フェースをリンクしてます。なお、Plamo版
Apacheにはまえだみつひろさんらにより日本語化
されたPHP/FIとGDを使ってます。
2. インストールの仕方
Apache,PHP/FI,GDパッケージはCDROMの
contrib/Database/にあり、それぞれ
apach126.tgz, phpfi201.tgz,gd13.tgzという名
前でアーカイブされています。インストールは次
のように行います。
# cd /cdrom/contrib/Database
# installpkg apach126.tgz
# installpkg phpfi201.tgz
# installpkg gd13.tgz
Apacheウェブサーバは/usr/local/etc/httpd/に
インストールされます。GDは日本語のフォントイ
メージの生成にVFlibを利用しますのでそれもイ
ンストールしておいて下さい。インストールは、
メニューで選択できるpkgtoolコマンドを使って、
まとめ行なうことも可能です。
Apacheウェブサーバの構成は、80番のポートを使
用してユーザnobodyで走るような標準的な設定に
してあります。PHP/FIに関しては以下のような設
定を追加しています。
conf/srm.conf:
DirectoryIndex index.html index.phtml
AddType application/x-httpd-php .phtml
AddIcon /icons/layout.gif .html .shtml .phtml .htm .pdf
conf/access.conf
phpShowInfo on
phpLogging on
phpUploadTmpDir /tmp
必要なパッケージをインストールした後、
/usr/local/etc/httpd/apachedスクリプトを使っ
てhttpdを起動します。
# /usr/local/etc/httpd/apached start
httpdの動作確認には、Netscapeなどのブラウザ
を使って http://localhost/ にアクセスしてみ
ましょう。おなじみの"It Worked!"と書かれた
Apacheウェブサーバのサンプル・ページが出れば
大丈夫です。このページの下の方には図2のよう
に、インストールされた幾つかの関連パッケージ
のリストが表示されます。
図 2 Apache ウェブサーバで関連パッケージの表示
4. Plamoのウェブ・スタッフ
Plamo版ApacheとPostgreSQLのセットがインストー
ルされた状態でNetscapeなどのブラウザを使って
http://localhost/pfpg/にアクセスしてみて下さ
い。PostgreSQLへのアクセス例として作成された
ページがあります。また、/usr/doc/phpfi/examples/
には、ファイル・アップロードやゲストブック
などPHP/FIによるページの記述例があります。
Plamoで検索ページをウェブに作りたい場合は、
Namazuか、あるいは、freeWAIS-sf + SFgateを使っ
て索引検索が行なえます。今回の本誌特集で、
Namazuについては高林哲さんが、freeWAIS-sf +
SFgateについては馬場肇さんが、それぞれ書かれ
ていますので御覧下さい。
その他にも、メーリングリストのページを吊り
下げるのにMHonArcや、ネットワークのモニター
をするためのMRTGもあります。後で紹介する
W-AGORAはウェブ上にフォーラムを開くことがで
きます。
5. FreeBSD portsについて
FreeBSDユーザの皆さんのために、いちろうさん
がPostgreSQLとGDのportsを作って下さいました。
FreeBSD ports は、
ftp.jp.freebsd.org:/pub/FreeBSD/ports/japanese/postgresql
ftp.jp.freebsd.org:/pub/FreeBSD/ports/japanese/gd
の他、世界中のFreeBSDミラー・サイトにあ
るそうです。
------------------------------------------------------------------------
PostgreSQL サンプルアプリケーション(郵便番号データベース)
1. PgPost の紹介
PgPostは、郵政省が配布している約11万件に及
ぶ新旧郵便番号の対応データをPostgreSQLデータ
ベースに登録しPHP/FIを介して出されるページか
らブラウザを使って検索できるようなシステムで
す。石井達夫さんが開発されました。
ユーザ・インターフェース・プログラムに
は、PHP/FIベースのpgpostの他にTcl/Tkベー
スのtkpostもあります。
2. インストールの仕方/インストールの状態
PlamoにはPostgreSQLのアプリケーションとして
PgPost-1.1のPHP/FI版とTcl/Tk版の両方を収録し
ています。CDROMのcontrib/Database/Sampleディ
レクトリのpgpost11.tgzと言う名前のアーカイブ
です。PgPostを利用するにはPostgreSQLと
Apache,PHP/FIが(tkpostもご利用になる場合は
Tcl/Tkも)インストールされている必要がありま
す。そして、PostgreSQLのpostmasterが走ってい
なくてはなりません。PgPostのインストールは次
のように行います。
# cd /cdrom/contrib/Database/Sample
# installpkg pgpost11.tgz
インストール時に実行されるスクリプトにより、
あらかじめデータベースからダンプした郵便番号
のデータから、稼働中のPostgreSQLのデータベー
スへ登録され、Apacheウェブサーバのメインペー
ジにpgpostのページへのリンクの記載が追加され
ます。ウェブサーバが走っていれば、あとは、ブ
ラウザからアクセスするだけです。直接PgPostの
メインページにアクセスするには
http://localhost/postal/を指定します。図3は
pgpostのメインページです。
図 3 pgpost のメインページ
------------------------------------------------------------------------
PHP/FI による掲示板システム W-AGORA
1. W-AGORA の紹介
W-AGORAはフランスのMarc Druilheさんによる
(http://www.araxe.fr/w-agora/)、ウェブ上に複
数のフォーラムを作り文書を共有するためのシス
テムです。古代ギリシャで公共の広場のことを
AGORA と言ったそうです。登録される文書は、
swishまたはnamazuを使って索引付すれば、検索
も可能となります。W-AGORA2.0b2では一部日本語
のメッセージが加えられ、Namazuを使うことで日
本語の文書の索引検索が可能になります。これら
の設定は、フォーラム毎に設定することができま
す。なお、Namazuについては高林哲さんの記事が
ありますのでそちらをご参照ください。
2. インストールの仕方/インストールの状態
PlamoにはPHP/FIのアプリケーションとして
W-AGORA-2.0b2を収録しています。CDROMの
contrib/Database/Sample/にwagora2.tgzと言う
名前のアーカイブがあります。W-AGORAを利用す
るにはApache, PHP/FIがインストールされている
必要があります。日本語で索引検索をしたい場合
は、Namazuも必要です。W-AGORA2のインストール
は次のコマンドで行ないます。
# cd /cdrom/contrib/Database/Sample
# installpkg wagora2.tgz
インストールが終ると、まず最初にsetup.phtml
を実行して管理者の登録を行なって下さい。イン
ストール直後の状態では管理用のパスワードが入っ
ていので、真っ先にそれを設定して下さい。設定
は、JAVAアプレットの使えるウェブ・ブラウザ
(Netscape等)で、
http://localhost/w-agora2/setup.phtml
にアクセスして行ないます。W-AGORAの管理者に
なるとフォーラムを作ることができます。フォー
ラムの作成は、"W-Agora Administration"ページ
で"Create a Forum"をクリックして登録を行ない
ます。この際、
"Language" = "Japanese"
"Search Engine" = "Namazu"
を指定すると、日本語のメッセージとNamazuによ
る検索が可能となります。ただし、日本語化がま
だ不十分なため、文字が化けるところもあります。
以下にW-AGORAのページ例を幾つか示します。
図 4.1 W-AGORA管理フォーラムリスト
図 4.2 W-AGORA投稿ページ
図 4.3 W-AGORAフォーラムリスト
図 4.4 W-AGORAノートリスト
図 4.5 Namazuによる検索結果
------------------------------------------------------------------------
最後にPlamo版PostgreSQLのことを取り上げて下
さったSD編集部の方々、PostgreSQLのPlamo
Linuxへの貢献を助けて下さったPlagia-ML,
pgsql-jp MLの皆さん、また、開発用にマシンを
提供して下さった松岡先輩らに感謝いたします。
------------------------------------------------------------------------
参考文献
[1]
「WWWでデータベースにチャレンジ!postgres95を使って」、
石井達夫、SoftwareDesign、1997-2,p28
「フリーのデータベースPostgreSQLを導入しよう」、
石井達夫、SoftwareDesign、SoftwareDesign、1997-10,p78
「PHP/FIサーバサイドスクリプト入門」、
石井達夫、SoftwareDesign、1998-1,p138
「PostgreSQLとPHP/FI応用編 前編」、
石井達夫、SoftwareDesign、1998-3,p158
「PostgreSQLとPHP/FI応用編 後編」、
石井達夫、SoftwareDesign、1998-4,p158
「PC UNIXで実用データベース」、
石井達夫、SoftwareDesign、1998-9,p135
[2]「リレーショナル・データベース入門」、増永良文、
サイエンス社、1991、(ISBN-4-7819-0594-3)
[3] "Object-Relational DBMSs the Next Great Wave",ISBN1-55860-397-2、
マイケル・ストーンブレーカー、
邦訳「オブジェクトリレーショナルDBMSs」、
インターナショナル・トムソン・パブリッシング・ジャパン
/株式会社ビーエヌエヌ、
1996、(ISBN4-89369-436-7)