初出: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 のクエリ・デザイナを使ってい
る時の様子です。


pgaccess-design.gif
図 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のよう に、インストールされた幾つかの関連パッケージ のリストが表示されます。 apache-worked.gif
図 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のメインページです。 pgpost-main.gif
図 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のページ例を幾つか示します。 w-agora-admin.gif
図 4.1 W-AGORA管理フォーラムリスト w-agora-post.gif
図 4.2 W-AGORA投稿ページ w-agora-forum.gif
図 4.3 W-AGORAフォーラムリスト
図 4.4 W-AGORAノートリスト w-agora-search.gif
図 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)