FIAB-Board administrator's Help

FIAB-Boardとは何か

 FIAB-BoardはPerlで作られたCGI用のWeb掲示板プログラムです。
 FIAB-Boardは1つの書き込みに対してレスポンスをつなげていく単純なスレッド形式の掲示板です。

 FIAB-Boardの名前はFoolishly Implemented Again Bulletin-Board : 馬鹿げたことに、再度実装した掲示板から頭文字をとっております。

FIAB-Boardの特徴

 いまさら、Web掲示板を作るからにはそれなりの理由が必要ですが、FIAB-Boardでは作る理由として次の特徴を持っています。

動作条件

 FIAB-BoardはPerl 5が動作するWebサーバ上で動作します。

必要とするライブラリ

 FIAB-BoardではPerlライブラリcgi-lib.plを実行時に使用します。
 入手先等を下記に挙げます。

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.cssEUC-JPLF
その他のファイルShift_JISCR+LF

掲示板の設置方法

 掲示板の設置は以下の手順で行います。
 作業を行う前に自分がFIAB-Boardを設置するWebサーバのディレクトリ構成やCGIスクリプトのパーミッションを確認しておいてください。

 例では、次のようなWebサーバの構成を想定します。
 ファイルはそれぞれのディレクトリにbbsというディレクトリを作り、その中に配置するものとします。

WebブラウザからアクセスするURLFTPのディレクトリ名ディレクトリの用途配置するファイル
http://hogefuga.ne.jp/username/cgi-bin//cgi-binCGIの設置場所CGI用プログラム(cgiディレクトリ内のファイル)
http://hogefuga.ne.jp/username//homepageWebサーバからアクセスするファイルの設置場所スタイルシートとヘルプファイル(resourceディレクトリ内のファイル)

1.ファイルの書き換え

 まず、掲示板を配置するWebサーバにあわせてファイルを書き換えます。
 書き換える場所は赤い太字で示しております。(スタイルシートが有効なブラウザのみ)

Perlのパスの書き換え

 ファイル名の後ろ4文字が.cgiとなっているファイル(config.cgi除く)の1行目をWebサーバに用意されたPerlのパスにあわせて書き換えてください。
例.
#!/usr/local/bin/perl

設定ファイルの書き換え

 次に、config.cgiを書き換えます。
 必ず書き換える必要があるのは以下の項目です。
 URLについては、次の2.プログラムファイルのアップロードでアップロードした場所にあわせて書き換えを行ってください。

 残りの項目はconfig.cgiの記述に従ってお好みに応じて書き換えてください。

2.プログラムファイルのアップロード

 ユーザーの環境に応じてファイルを書き換えた後は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/)にアップロードしてください。

3.パーミッションの設定

 アップロードしたファイルに対してパーミッションの設定を行います。
 以下には、ファイル・ディレクトリに必要な権限を書きますので、Webページ用スペースを提供する各サービスの指示に従ってパーミッションを設定してください。
 以下の文章では、ファイルのオーナー=CGIを実行するユーザーとして説明します。

CGI用スクリプトファイル(cgiディレクトリ直下のファイル)

 cgiディレクトリ直下のファイルには次の権限をつけます。
 オーナーに対してファイルの実行権限を付けてください。
 オーナー、グループ、その他のユーザーに読み取り権限を付けてください。
(Webページ用スペースを提供する各サービスの指示がある場合は指示に従ってください。)

サブルーチン・設定ファイル(libディレクトリ内のファイル)

 libディレクトリ内のファイルには次の権限をつけます。
 オーナーに対して、ファイルの読み取り権限を付けてください。

dataディレクトリ

 データディレクトリには次の権限をつけます。
 オーナーに対してファイルの読み取り、書き込み、実行権限をつけてください、

lockdirディレクトリ

 lockdirディレクトリには次の権限をつけます。
 オーナーに対してファイルの読み取り、書き込み権限をつけてください、

4.Webブラウザからの呼び出し

 ここまでの準備ができたら、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