c o m m b o a r d
info freako's comfortable communication board
「c o m m b o a r d」は、WEB上で動作する軽快な掲示板システムです。以下の様な特徴を備えています。
- とにかく動作が軽快。
- シンプルな構成でインストールも簡単です。
- 誰でも見てすぐ使える、分かりやすく練り込まれたインタフェース。
- 記事に簡単にコメントを付けていくことができます。ちょうどチャットの様にテーマに付いて密に会話することが出来ます。
- 新着投稿がすぐに確認できます。古い記事に付いたコメントでも見逃しがありません。
- 記事量が増加しても高速なアクセスを実現。ページ毎、および親記事とコメント記事とでファイルを分割してあるので、記事数が1000件になっても10000件になってもレスポンスが低下することはありません。
- http://〜で始まる文字列を、自動的にリンクに変換(オプションで有効/無効を切り替えられます)。
- 文字装飾用のHTMLタグの使用が可能です。また、どのタグを使うか、使わないかの設定も簡単にできます。
- COOKIEを利用して毎回入力が必要になる個人情報を保持します(名前とEMAIL)。
- 特定のリモートホストからのアクセスを拒否できます(掲示板荒らし対策になります)。
- 一定時間内の連続的な投稿を制限できます(同じく掲示板荒らし対策になります)。
- 訪問者数の本日分、昨日の分、トータル分別のカウンタ付き。
- 記事の削除・復活が行える管理者ツール付き。
こちらになります
「c o m m b o a r d」はフリーウェアです。ご利用にあたっては以下の条項を遵守して下さい。
- このスクリプトに関する全ての著作権は作者に属します。
- このスクリプトを使用した結果生じたいかなる損害についても作者は責任を負いません。また、不具合や仕様の不備があったとしても、作者はそれを修正する責任を負いません。
- 原則としてメール等による個別のユーザサポートは行っておりません。
- 有料・無料・改変の有無を問わず、作者へ許可なく再配布あるいはレンタルを行なうことは出来ません。
- スクリプトの改変は作者へ許可なく自由に行って頂いて構いません。ただし、フッタに記載されている著作表示及び「info freako」へのリンク表示を改竄あるいは削除することは禁止します。表現を変更することは(大きさや表示位置等)構いません。
- これらの条項は事前の通告なく変更・削除等される場合があります。
EMAILアドレスを入力して、「download」ボタンを押して下さい。
EMAILアドレスは必須ではありませんが、なるべく入力するようにしてください。改訂やバグ報告等のアナウンスも届きます。
また、もし実際に設置されましたら、その旨を webmaster@infofreako.com の方までご一報頂ければ幸いです。
commboard.zipを解凍すると、ファイル一覧、ディレクトリ構成に示すようにファイルが展開されます。 これらのディレクトリ名、含まれるファイル等は実際にサーバにアップロードした状態と同様になっていますので、展開された状態を参考にしながらアップして下さい。
! ! 重要 ! !
実際にファイルをアップする前に、必ず修正して頂かなければならない項目が2つあります。
- 「commboard.cgi」の1行目の「#!/usr/local/bin/perl」を、サーバに合った設定に変更する
この行は、Perlのシステムの場所を示しています。この様に/usr/local/bin/perlであるシステムが多いですが、必ずプロバイダがアナウンスしている情報と照らし合わせて、異なっているようなら正しい値に変更しておいて下さい。
同様に「commdelete.cgi」の1行目の「#!/usr/local/bin/perl」も変更します。
- 「init.cgi」の「$MASTERPASSWORD」の値を変更する
これは管理者用のパスワードです。この値を変更しないと、記事を勝手に削除されてしまう可能性がありますので、必ず任意の英数字の値に変更しておいて下さい。
以上の変更が終了しましたら、以下の手順に従ってサーバにファイルをアップして下さい。「ファイル一覧とディレクトリ構成だけ見れば分かる」という方は、無論お好きな方法でガシガシアップして頂いて構いません。
【メインディレクトリの作成とスクリプトファイルの転送】
- サーバの中で、CGI実行可能なディレクトリ内(「cgi-bin」であることが多い)に任意の名前のディレクトリを作る。これが、システム全体を入れるディレクトリとなる(ここでは「bbs」と名前を付けることにする)。
- 1.で作成したディレクトリのパーミッション(実行権)を、755(-rwxrwxr-x)に変更する。変更の仕方は使用するFTPソフトによって違うので、ソフトのヘルプを参照して下さい。
- 1.で作成したディレクトリに全てのファイル ( commboard.cgi、 commdelete.cgi、 init.cgi、 main.tmpl.html、 error.tmpl.html、 toolbox.pl、 jcode.pl ) をASCIIモードで転送する。
- 3.で転送したファイルのうち、「commboard.cgi」「commdelete.cgi」のパーミッションを755に変更する。
【データディレクトリの作成】
- 1.で作成したディレクトリの下に、「data」ディレクトリを作成する。
このディレクトリの名前(位置も)はinit.cgi内で設定してあるので、もしinit.cgiの該当部分を変更している場合はそれに合致する名前と場所にして下さい。
- 5.で作成したディレクトリのパーミッションを777(-rwxrwxrwx)に変更する。
ファイルをアップロードし終えたら、「commboard.cgi」を呼び出してテストをしてみて下さい。うまく動かなかった場合は、FAQを読んで間違っているところがないかチェックしてみて下さい。
Q.記事を保存するファイルは要らないんですか
A.自動的に作られます
投稿された記事を保存しておくファイルは、システムが最初に立ち上がると自動的にデータ保存ディレクトリ(初期状態では「./data/」)に作成されます。ですから、空のファイルを用意するといった作業は必要ありません。
気を付けていただきたいのは、ファイルを自動生成するためにはデータ保存ディレクトリが「不特定多数によって書き込み可能」になっていなければなりません。つまり、パーミッションが「666」あるいは「777」になっていなければならないということです。エラーは出なかったが記事が保存されない、という場合にはまずこの点をチェックしてみて下さい。
Q.背景色やタイトルなどをカスタマイズしたいんですが
A.init.cgiを変更してみて下さい
c o m m b o a r dは、スクリプトの見かけに関しての設定を極力システム自体と分離し、カスタマイズがしやすいように作ってあります。背景色、背景用の画像、掲示板のタイトル、各文字の大きさなどが、パラメタの値を変更するだけで設定できます。
具体的には、「init.cgi」の「アピアランスの設定」の部分を色々変更してみて下さい。
Q.もっといろいろカスタマイズしたいんですが
A.main.tmpl.htmlを変更してみて下さい
実際に表示を行っている部分の大半は、main.tmpl.htmlにテンプレートとして定義されています(といってもただのHTMLです)。いろいろ変更してみて下さい。
ただし、この部分はプログラムと密接に関係しています。具体的には、「$」で始まる文字列は、プログラムで置き換えられる変数です。これらの文字列を不用意に変更するとプログラムが動かなくなる場合がありますので十分ご注意下さい。変更する際には、かならずバックアップを取っておいてから行うことをお勧めします :-)
Q.1ページ内の記事数を増やしたいんですが
A.$MAXLOG_IN_PAGEを変更して下さい
init.cgiの「システムで使用するパラメタ類の設定」のところにある「$MAXLOG_IN_PAGE = 10;」とある行が、1ページ内の記事数を設定してあります。この10を任意の数に変えれば、ページ内記事数が変更できます。
ただし、一度掲示板の運用を始めたら、この値は絶対に変えないで下さい!
Q.特定のリモートホストからのアクセスを制限したいんですが
A.$F_DENY_ILLEAGLを1にして下さい
init.cgiの「システムで使用するパラメタ類の設定」のところにある「$F_DENY_ILLEAGL = 0;」となっている行を「$F_DENY_ILLEAGL = 1;」と変更すると、@DENIED_HOST_LISTに書かれたホストからのアクセスを拒否するようになります。
@DENIED_HOST_LISTに、拒否したいホストを追加する場合は、@DENIED_HOST_LIST = ( 'DENIED_HOST_NAME1', 'DENIED_HOST_NAME2', );といった具合に、「 ' ' 」でホスト名を囲い、「 , 」(カンマ)で続けて記入していって下さい(改行や空白が挟まっても構いません)。
Q. 新着情報の表示数を変えたいのですが
A. $WHATSNEW_VIEW の値を変更して下さい
init.cgiの「システムで使用するパラメタ類の設定」のところにある「$WHATSNEW_VIEW = 10;」となっている行が、新着情報の表示数を決定しています。
また、「$WHATSNEW_MAX = 50;」となっている行は、新着情報の保存数を決定しています。
新着情報機能そのものを無効にする場合は、「$F_WHATSNEW = 1;」となっている行を「$F_WHATSNEW = 0;」と変更して下さい。ディスクアクセスが減少しますので、多少は動作が軽くなる可能性があります。
Q.不正な書き込みを防止したいんですが
A. $F_CHECK_REFERER を 1 にして下さい
WEB上の掲示板は、単体のアプリケーションというわけではないので、いろいろ「不正な操作」が出来てしまいます。例えば、ただのHTMLファイルにcommboardの発言窓を貼り付けて卑猥な書き込みを繰り返す、とか。
init.cgiの「システムで使用するパラメタ類の設定」のところにある$F_CHECK_REFERERを有効にすると、$ALLOWED_URIを含むURL以外からの書き込みを禁止します。つまり正規の使用方法しか許可しなくなります。
ただ問題点が一つあり、サーバの設定によっては「http://www.infofreako.com/」でも「http://infofreako.com/」でもアクセス出来る、といった具合に複数名をサーバが持つことがあります。$ALLOWED_URIは、デフォルトでは「http://$ENV{'SERVER_NAME'}$ENV{'SCRIPT_NAME'}」といった具合に自動的にサーバ名とスクリプト名を連結して設定されてますが、この厳密な方法だとうまくいかない、という場合もあるかと思います。
これを解消するには、「# $ALLOWED_URI = 'yourhostname';」となっている行の冒頭の「#」を削除し、yourhostnameをあなたのサーバの名前やディレクトリなどに変更して下さい。yourhostnameが部分的にでも含まれているURLならば、書き込みを許可するようになります。
例えば「$ALLOWED_URI = 'infofreako.com';」としたならば、「http://www.infofreako.com/commboard.cgi」でも「http://infofreako.com/commboard.cgi」でもOKになります。
実行スクリプト
実際にブラウザから呼ばれるスクリプトファイルです。これらのファイルはすべてパーミッションが755になっている必要がありますcommboard.cgi 掲示板本体スクリプト commdelete.cgi 削除・復活用スクリプト(管理者用) サブルーチン
実行スクリプトに取り込まれて機能する、各種サブルーチンです。これらのファイルは通常パーミッションの変更は必要ありません(644でOKです)toolbox.pl 各種サブルーチンライブラリ jcode.pl 日本語処理ライブラリ 設定ファイル
commboardの動作についての様々な設定が記述されていますinit.cgi 基本設定ファイル テンプレートファイル
表示画面の元となるHTMLのテンプレートですmain.tmpl.html メイン画面 error.tmpl.html エラー画面
【bbs】[755]------------------ 任意の名前。パーミッションは755(CGI実行可能) │ ├ commboard.cgi[755] 実行スクリプト。パーミッションを755にしておく必要がある ├ commdelete.cgi[755] 削除・復活用スクリプト。パーミッションを755にしておく必要がある │ ├ toolbox.pl[644] その他のファイルは全てパーミッションは ├ jcode.pl[644] 初期値(通常644、-rw-r--r--)で構わない ├ init.cgi[644] │ ├ main.tmpl.html[644] ├ error.tmpl.html[644] │ └【data】[777]-------------- init.cgi内で「$DATADIR」で指定されている ディレクトリ。初期値は「data」
- バージョン1完成(1999/12/2)
- バージョン1.1。削除ツールが追加(1999/12/6)
- コメントをリスト(UL)にして、コメント総数を付記(1999/12/6)
- 新着投稿確認機能を追加。ver 1.1.1(1999/12/6)
- メイン画面をテンプレートに分離。ver 1.1.2(1999/12/7)
- 新着記事数をユーザが変更できるように修正。ver 1.1.3(1999/12/7)
- 記事間のリンク機能を追加。ver 1.1.4(1999/12/8)
- 正しいスクリプト以外からの投稿を禁止する機能(荒らし対策用)を追加。ver 1.1.5(1999/12/8)
- ファイル名のデフォルト拡張子を「.cgi」に変更。(1999/12/9)
- コメント投稿者もEMAILを書く&表示するように変更。ver 1.1.6(1999/12/9)
- 諸所微調整。ver 1.1.9 (2000/06/30)