c o m m b o a r d

info freako's comfortable communication board
  1. 概要
  2. 動作サンプル
  3. 利用規約
  4. ダウンロード
  5. 解凍
  6. アップ手順解説
  7. FAQ
  8. ファイル一覧
  9. ディレクトリ構成
  10. 更新履歴

【概要】
「c o m m b o a r d」は、WEB上で動作する軽快な掲示板システムです。以下の様な特徴を備えています。

【動作サンプル】
こちらになります

【利用規約】
「c o m m b o a r d」はフリーウェアです。ご利用にあたっては以下の条項を遵守して下さい。
  1. このスクリプトに関する全ての著作権は作者に属します。
  2. このスクリプトを使用した結果生じたいかなる損害についても作者は責任を負いません。また、不具合や仕様の不備があったとしても、作者はそれを修正する責任を負いません。
  3. 原則としてメール等による個別のユーザサポートは行っておりません。
  4. 有料・無料・改変の有無を問わず、作者へ許可なく再配布あるいはレンタルを行なうことは出来ません。
  5. スクリプトの改変は作者へ許可なく自由に行って頂いて構いません。ただし、フッタに記載されている著作表示及び「info freako」へのリンク表示を改竄あるいは削除することは禁止します。表現を変更することは(大きさや表示位置等)構いません。
  6. これらの条項は事前の通告なく変更・削除等される場合があります。

【ダウンロード】
EMAILアドレスを入力して、「download」ボタンを押して下さい。
EMAILアドレスは必須ではありませんが、なるべく入力するようにしてください。改訂やバグ報告等のアナウンスも届きます。
また、もし実際に設置されましたら、その旨を webmaster@infofreako.com の方までご一報頂ければ幸いです。
EMAIL:

【解凍】
commboard.zipを解凍すると、ファイル一覧ディレクトリ構成に示すようにファイルが展開されます。 これらのディレクトリ名、含まれるファイル等は実際にサーバにアップロードした状態と同様になっていますので、展開された状態を参考にしながらアップして下さい。

【インストール手順解説】
! ! 重要 ! !

実際にファイルをアップする前に、必ず修正して頂かなければならない項目が2つあります。
  1. 「commboard.cgi」の1行目の「#!/usr/local/bin/perl」を、サーバに合った設定に変更する
    この行は、Perlのシステムの場所を示しています。この様に/usr/local/bin/perlであるシステムが多いですが、必ずプロバイダがアナウンスしている情報と照らし合わせて、異なっているようなら正しい値に変更しておいて下さい。
    同様に「commdelete.cgi」の1行目の「#!/usr/local/bin/perl」も変更します。

  2. 「init.cgi」の「$MASTERPASSWORD」の値を変更する
    これは管理者用のパスワードです。この値を変更しないと、記事を勝手に削除されてしまう可能性がありますので、必ず任意の英数字の値に変更しておいて下さい。


以上の変更が終了しましたら、以下の手順に従ってサーバにファイルをアップして下さい。「ファイル一覧ディレクトリ構成だけ見れば分かる」という方は、無論お好きな方法でガシガシアップして頂いて構いません。
    【メインディレクトリの作成とスクリプトファイルの転送】

  1. サーバの中で、CGI実行可能なディレクトリ内(「cgi-bin」であることが多い)に任意の名前のディレクトリを作る。これが、システム全体を入れるディレクトリとなる(ここでは「bbs」と名前を付けることにする)。

  2. 1.で作成したディレクトリのパーミッション(実行権)を、755(-rwxrwxr-x)に変更する。変更の仕方は使用するFTPソフトによって違うので、ソフトのヘルプを参照して下さい。

  3. 1.で作成したディレクトリに全てのファイル ( commboard.cgi、 commdelete.cgi、 init.cgi、 main.tmpl.html、 error.tmpl.html、 toolbox.pl、 jcode.pl ) ASCIIモードで転送する。

  4. 3.で転送したファイルのうち、「commboard.cgi」「commdelete.cgi」のパーミッションを755に変更する。



    【データディレクトリの作成】

  5. 1.で作成したディレクトリの下に、「data」ディレクトリを作成する。
    このディレクトリの名前(位置も)はinit.cgi内で設定してあるので、もしinit.cgiの該当部分を変更している場合はそれに合致する名前と場所にして下さい。

  6. 5.で作成したディレクトリのパーミッションを777(-rwxrwxrwx)に変更する。

ファイルをアップロードし終えたら、「commboard.cgi」を呼び出してテストをしてみて下さい。うまく動かなかった場合は、FAQを読んで間違っているところがないかチェックしてみて下さい。

【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」

【更新履歴】

「 c o m m b o a r d 」
info freako's comfortable communication board

copyright(c)1999 2000 info freako all rights reserved.

→ go to info freako