FIAB-BoardはPerlで作られたCGI用のWeb掲示板プログラムです。
FIAB-Boardは1つの書き込みに対してレスポンスをつなげていく単純なスレッド形式の掲示板です。
FIAB-Boardの名前はFoolishly Implemented Again Bulletin-Board : 馬鹿げたことに、再度実装した掲示板から頭文字をとっております。
いまさら、Web掲示板を作るからにはそれなりの理由が必要ですが、FIAB-Boardでは作る理由として次の特徴を持っています。
FIAB-BoardはPerl 5が動作するWebサーバ上で動作します。
FIAB-BoardではPerlライブラリcgi-lib.plを実行時に使用します。
入手先等を下記に挙げます。
作者:Steven E. Brenner氏
入手元:http://cgi-lib.berkeley.edu/
FIAB-Boardを構成するファイルについて説明します。
ディレクトリ | ファイル名 | 説明 |
---|---|---|
cgi/ | admin.cgi |
管理者用ページを生成するCGI用プログラムです。 |
cgi/ | bbs.cgi |
掲示板を表示するCGI用プログラムです。 |
cgi/ | del.cgi |
書き込みを削除するページを生成するCGI用プログラムです。 |
cgi/ | res.cgi |
書き込みに対するレスポンス書き込みを行うページを生成するCGI用プログラムです。 |
cgi/ | write.cgi |
書き込みを行うページを生成するCGI用プログラムです。 |
cgi | lib |
CGI用プログラムが使用するライブラリを格納するライブラリディレクトリです。 |
cgi/lib | .htaccess |
.htaccess対応サーバでlibディレクトリの中身を見せないようにするために使用している.htaccessファイルです。 |
cgi/lib | bbslib.pl |
本プログラムで使うサブルーチンのファイルです。 |
cgi/lib | config.cgi |
本プログラムで作成する掲示板の設定を記述したファイルです。 |
cgi/lib | spamword.pl |
書き込みを拒否する単語を記述するファイルです。 |
cgi/lib | unsafeUrl.pl |
書き込みを拒否するURLの断片を記述するファイルです。 |
cgi | data |
書き込みデータが格納されるデータディレクトリです。 |
cgi/data | .htaccess |
.htaccess対応サーバでdataディレクトリの中身を見せないようにするために使用している.htaccessファイルです。 |
cgi | lockdir |
同時アクセスによる不整合を防ぐためのロックファイルが格納されるロックファイル用ディレクトリです。 |
cgi/lockdir | .htaccess |
.htaccess対応サーバでlockdirディレクトリの中身を見せないようにするために使用している.htaccessファイルです。 |
cgi/lockdir | lockfile |
同時アクセスによる不整合を防ぐためのロックファイルです。 FIAB-Boardではロックファイルをリネームすることでアクセス中であるを検出し、同時アクセスによる不整合殻発生する誤動作を防ぎます。 |
resource/ | bbs.css |
メディアタイプscreen,print,projection,tv用のスタイルシートです。 主にPC用のWebブラウザで使用されます。 |
resource/ | bbsHandheld.css |
メディアタイプhandheld用のスタイルシートです。 主にPDAやPHS、携帯電話といった携帯機器で使用されます。 |
resource/ | help.html |
掲示板を利用する人のためのヘルプファイルです。 |
resource/ | help.css |
掲示板を利用する人のためのヘルプファイルのスタイルシートです。 |
/ | manual.html |
管理者用のマニュアルです。 |
/ | manual.css |
管理者用マニュアルのスタイルシートです。 |
/ | history.html |
開発履歴です。 |
ファイルの文字コードと改行コードは次の通りです。
ファイルの場所・名前 | 文字コード | 改行コード |
---|---|---|
cgiディレクトリの下のファイルとbbs.css,bbsHandheld.css | EUC-JP | LF |
その他のファイル | Shift_JIS | CR+LF |
掲示板の設置は以下の手順で行います。
作業を行う前に自分がFIAB-Boardを設置するWebサーバのディレクトリ構成やCGIスクリプトのパーミッションを確認しておいてください。
例では、次のようなWebサーバの構成を想定します。
ファイルはそれぞれのディレクトリにbbsというディレクトリを作り、その中に配置するものとします。
WebブラウザからアクセスするURL | FTPのディレクトリ名 | ディレクトリの用途 | 配置するファイル |
---|---|---|---|
http://hogefuga.ne.jp/username/cgi-bin/ | /cgi-bin | CGIの設置場所 | CGI用プログラム(cgiディレクトリ内のファイル) |
http://hogefuga.ne.jp/username/ | /homepage | Webサーバからアクセスするファイルの設置場所 | スタイルシートとヘルプファイル(resourceディレクトリ内のファイル) |
まず、掲示板を配置するWebサーバにあわせてファイルを書き換えます。
書き換える場所は赤い太字で示しております。(スタイルシートが有効なブラウザのみ)
ファイル名の後ろ4文字が.cgiとなっているファイル(config.cgi除く)の1行目をWebサーバに用意されたPerlのパスにあわせて書き換えてください。
例.
#!/usr/local/bin/perl
次に、config.cgiを書き換えます。
必ず書き換える必要があるのは以下の項目です。
URLについては、次の2.プログラムファイルのアップロードでアップロードした場所にあわせて書き換えを行ってください。
残りの項目はconfig.cgiの記述に従ってお好みに応じて書き換えてください。
ユーザーの環境に応じてファイルを書き換えた後はWebサーバにファイルをアップロードします。
例で挙げるディレクトリ名を括弧の中に示します。
CGIの実行を許可するディレクトリ(/cgi-bin)にbbsディレクトリを作成し、FIAB-Boardの配布ファイルのbbsディレクトリにあるファイルをアップロードしてください。
bbsディレクトリの下にdata,lib,lockdirディレクトリを作成し、FIAB-Boardの配布ファイルの同名ディレクトリにあるファイルをアップロードしてください。
作成したbbsディレクトリの下のlibディレクトリ(/cgi-bin/bbs/lib)にcgi-lib.plをアップロードしてください。
正しくファイルを設置した場合、プログラムを配置するディレクトリの中は次のような配置となります。
(名前の後ろに/が付いているものはディレクトリです。)
配置先ディレクトリ /cgi-bin/bbs/ |
admin.cgi | |
bbs.cgi | ||
del.cgi | ||
res.cgi | ||
write.cgi | ||
データディレクトリ /cgi-bin/bbs/data/ |
.htaccess |
.htaccessファイルです |
ロックファイル用ディレクトリ /cgi-bin/bbs/lockdir/ |
.htaccess |
.htaccessファイルです |
lockfile |
ロックファイルです。 |
|
ライブラリディレクトリ /cgi-bin/bbs/lib/ |
.htaccess |
.htaccessファイルです |
config.cgi | ||
bbslib.pl | ||
spamword.pl | ||
unsafeUrl.pl | ||
cgi-lib.pl |
resourceディレクトリの下のファイルはWebブラウザが読み込むファイルなので、Webブラウザからアクセスするファイルを置くディレクトリ(/homepage/bbs/)にアップロードしてください。
アップロードしたファイルに対してパーミッションの設定を行います。
以下には、ファイル・ディレクトリに必要な権限を書きますので、Webページ用スペースを提供する各サービスの指示に従ってパーミッションを設定してください。
以下の文章では、ファイルのオーナー=CGIを実行するユーザーとして説明します。
cgiディレクトリ直下のファイルには次の権限をつけます。
オーナーに対してファイルの実行権限を付けてください。
オーナー、グループ、その他のユーザーに読み取り権限を付けてください。
(Webページ用スペースを提供する各サービスの指示がある場合は指示に従ってください。)
libディレクトリ内のファイルには次の権限をつけます。
オーナーに対して、ファイルの読み取り権限を付けてください。
データディレクトリには次の権限をつけます。
オーナーに対してファイルの読み取り、書き込み、実行権限をつけてください、
lockdirディレクトリには次の権限をつけます。
オーナーに対してファイルの読み取り、書き込み権限をつけてください、
ここまでの準備ができたら、WebブラウザからCGIを呼び出してください。
はじめにアクセスするCGIスクリプトはbbs.cgiです。
設定がうまく行っていればconfig.cgiで指定したBBS名が表示されたページが表示されます。
動作確認として、新規書き込みのリンクからのスレッド作成、スレッドへの返信、書き込みの削除ページからの書き込み削除、管理者用ページの表示、管理者用ページからの書き込み削除、ヘルプの表示を行ってください。
呼び出し例.
http://hogefuga.ne.jp/username/cgi-bin/bbs/bbs.cgi
以上で掲示板の設置が完了しました。
管理者用ページでは投稿内容の確認と公開許可、書き込みの削除を行うことができます。
管理者用ページの利用にはJavaScriptが利用できるブラウザが必要です。
掲示板の下の管理者用パスワードに環境設定ファイルconfig.cgiで指定したパスワードを入力すると管理者ページに入ることができます。
管理者用ページではアクセスキーやlink要素によるナビゲーションがないことや書き込み・返信ができないこと以外は掲示板のページと同じ操作が行えます。
「投稿を公開する」のリンクをたどると投稿を公開することができます。
「投稿を削除する」のリンクをたどると投稿を削除することができます。
ページの掲示板に戻る(T)のリンクをたどると掲示板に戻ることができます。
見栄えのカスタマイズはbbs.css(メディアタイプscreen,print,projection,tv)とbbsHandheld.css(メディアタイプhandheld)を書き換えることで行います。掲示板のページのソースとスタイルシート内のコメントを見比べながらお好みに応じて書き換えてください。
掲示板のタイトルやあいさつ文、スレッド表示数のカスタマイズはconfig.cgiで行います。
コメントにしたがって書き換えてください。
FIAB-Boardのデータのバックアップを行う際は設置の際に作成したdataディレクトリ(FIAB-Boardの配布ファイルのbbsディレクトリのファイルをアップロードしたディレクトリに存在するdataディレクトリ)の全ファイルをダウンロードしてください。
リストアを行う際はバックアップで取得したファイルを設置の際に作成したdataディレクトリにコピーしてください。
データファイルはテキストベースなので、転送を行う時には改行コードの設定に注意してください。
基本的には、バックアップを取る時とリストアを行う時の転送モードを合わせる様にする必要があります。
(バイナリモードでバックアップを取得したら、バイナリモードでリストアを行う。)
ファイルの内訳は次の通りです。
ファイル名 | 説明 |
---|---|
index.dat |
書き込みを格納するファイルのインデックスファイルです。 |
next.dat |
各スレッドの書き込みを格納するファイルの名前を生成するためのファイルです。 |
latest.dat |
最後に書き込みがあった時刻を書き出したファイルです。 |
(数字が入る).dat |
各スレッドの書き込みを格納するファイルです。 |
rssprev.dat |
直近の書き込み内容をRSS出力用に格納するファイルです。 |
本ソフトウェアは著作権を作者であるTatsuこと庄子達彦が保有するフリーウェアです。
本ソフト及びソースファイルは無料で目的を問わず自由に使ってかまいません。
が、転載する際には一声いただけると作者が喜びます。
作者は本ソフトを利用するにあたってなるべく不具合が出ないよう心がけておりますが、本ソフトの運用結果に対して作者は一切責任を取りません。
ご意見・ご感想などありましたら、下記の作者のところに一声いただけるとうれしいです。
庄子 達彦(Tatsu)
E-mail Address rxk16664@nifty.ne.jp
My Web page http://tatsu.life.coocan.jp/index.html