無料(フリー)掲示板CGIプログラムとwebツール

HitBBS 初めに お約束 設置の基本 見本 DL&更新情報

詳細 取説

V1.1-マニュアル

アップロード

設定が出来たら、設置の基本にある様にサーバにアップロードします。

パーミッションについて

大抵はサーバの方で指定していると思うので、その値を使用して下さい。 もし指定が無いようでしたら次の値でお試し下さい。

CGIファイル 705又は755又は775
PLファイル 604又は644又は664
ログファイル 600又は660
ディレクトリ 755又は775
ログ専用ディレクトリ 700又は770
CSS、HTMLファイル等 604又は644又は664又は666

※問題が出なければ、数字の小さい方を採用して下さい。

インストール・アンインストール

インストールは、top.cgiをエディタで開き、20行目ほどの所にある
「# $r = "./do-setup.pl"; require $r; # セットアップ」
の行を見つけ、頭の#を削除します。
アップロードして、top.cgiにブラウザでアクセスすると実行します。
「セットアップが完了しました。」と表示されたら今度は、top.cgiの#を元に戻して上書きアップロードします。
作成された各ディレクトリのパーミッションを確認して完了です。
再度top.cgiにアクセスするとBBSが表示されます。

アンインストールは、不要なファイルやディレクトリを削除するだけです。

管理画面

管理画面へログインするには、top.cgi?admin=△△△へブラウザからアクセスします(△△△の所には管理画面へ入るログインパスワード)。

※パスワード無しの時は、ログイン画面が現れます。

スレッドダウンロードフォーム
スレッドを一つダウンロードできます。

スレッドアップロードフォーム
スレッドを一つアップロードできます。既存のスレッドは上書きされます。

スレッド削除フォーム
スレッドを複数まとめて削除できます。
入力例:10(10.htmlのスレッドが削除される)
入力例:50-60(50.htmlから60.htmlのスレッドが削除される。)
削除指定したスレッドの中で、古いものだけを削除したい時は日数を指定します。
ファイルの更新日で判定していますので、後でコメントを編集した場合でも更新されたと判断します。

スレッド移動フォーム
スレッドを別のディレクトリへ移動します。
top.cgiの有るディレクトリへ移動先ディレクトリが作られます。
移動先に同じ番号のスレッドが存在する場合はスキップします。

スレッドコピーフォーム
スレッドを指定先ディレクトリへコピーします。
top.cgiの有るディレクトリへコピー先ディレクトリが作られます。
移動先に同じ番号のスレッドか存在する場合は上書きされます。

増えすぎたスレッドのスレッド番号の小さい順に削除する
管理画面を使わなくても、v1_data.plの初期設定のスレッド番号の最小値を変更し、top.cgiにブラウザでアクセスしページを表示するだけで出来ます。

※スレッドを削除して、スレッド番号の最小値から上にスレッドが無くなったら、それに合わせて初期設定のスレッド番号の最小値も変更して下さい。

管理の仕方

タイトル編集
スレッドをダウンロードして編集します。テキストエディタで開くと、一番上にある
「<!-- t○○ e□□ d0000/00/00 -->」の○○がタイトルです。
「t○○」のtは削除しないで下さい。
なお、スレッドのHTMLファイルに限り、Windowsのメモ帳でも編集が可能です。
終わったら、アップロードして上書きします。

コメント編集
スレッドをダウンロードして編集します。 記事を削除して最後のレス番号が変わったら、一番上の<!-- -->の、e□□の数字部分(□の所)を最後のレス番号に変更します。

不要なスレッドを削除
スレッドを削除するだけです。

スレッドクローズ
スレッドの名前欄に「終了△△△」(△△△は管理用ログインパスワード)を入力し、投稿するとクローズします。
レス投稿数がいっぱいになったり、ファイルサイズが制限値を超えてもクローズします。

投稿の一時停止
top.cgiの有るディレクトリに「0」の名前のディレクトリを作成すると、top.cgiにアクセスや投稿をしようとすると「只今、準備中です。」が表示されます。
FTPアップロードソフトを使って掲示板の管理や、プログラムの更新等をする場合に投稿をストップできます。
スレッドタイトルの一覧ページも表示されなくなりますが、スレッドは表示できます。
付属の管理画面を使って管理する時は排他ロックが動作するので不要です。

エラー画面について

セットアップ時のエラー番号について

10番台
作成するディレクトリが既に存在します。 詳細設定の作成ディレクトリのパスやFTPアップロードソフトなどでアップロード先を確認します。
100番台
ディレクトリの作成そのものに失敗しました。 パーミッションで制限されていないか、作成できない場所を指定していないか確認します。
110番台
ファイルロックテスト失敗。 排他制御に失敗した事を指します。ディレクトリ方式のロックの場合、タップフォルダにディレクトリを作れなかった事を意味します。
flock関数方式の場合はflock関数が使えない事を示します。
200番台
ファイル作成テスト失敗。 セキュリティーで作成権限が無いとか、ハーミッションで制限されていないか確認します。

他のエラーについて
エラーログにはエラー発生個所や幾つかの環境変数等が記録されます、見ると原因が分かるかもしれません。

ログについて

設定で指定した場所にログが記録されます。
ログが残るのは、投稿した時だけです。

ログ内容

[Time]
日時; プロセスID; time関数値
[Host]
ホスト(IPアドレス)
[UA]
ユーザーエージェント
[Refer]
リファラ
[ENV]
複数の環境変数
[POSI]
変数 フォームポジション
[enco_char]
変数 エンコードキャラクタ
[BBSI]
ファイル番号。掲示板V1では、仕様上、スレッド番号・ファイル番号・インデックスの並び順番号が同じ値になります。
[title_no]
インデックスの並び順番号
[res_no]
返信の並び順番号
[URL]
スレッドのURL
[Cookie]
クッキー。他でセットされたクッキーやサーバでセットされたものまで、送られてきたもの全部記録します。
[seet_cook]
セットを試みたクッキーの内容。
[SUB]
サブルーチン追跡ログ
[QUERY]
環境変数のクエリ
[REQU]
環境変数のREQUEST_URI
[Error]
エラーの内容

※毎回すべて記録される訳ではありません。

ディレクトリ構造(デフォルト値)

これはデフォルト値でセットアップした場合のディレクトリ構造です。

─┐
  ├ skin ┐
  │      └─────┬ skin.pl
  │                  └ skin2.pl
  │
  ├ v1_bbs ┐ <--------- (スレッド用ディレクトリ)
  │        └────┬ index.html
  │                  └ スレッド.html
  │
  ├ v1_log ┐ <--------- (ログ専用ディレクトリ)
  │        └────┬ index.html
  │                  └ 各種ログ
  │
  ├ v1_tmp ┐ <--------- (一時フォルダ)
  │        └────┬ index.html
  │                  └ 一時ファイル
  │
  ├ spam_log.cgi(スパム規制に引っかかったら作られるログ。)
  └ 「CGIスクリプト等」

注意

この掲示板は、スレッドの数やレスの数などが増え過ぎても表示が遅くなるだけで特に問題なく動いてしまうため、掲示板が肥大化してしまいます。
設定の制限値(MAX値等)を大きくし過ぎない様に注意して下さい。

肥大化するとFTPアップロードソフトでは管理不能になるので付属の管理画面を使用して下さい。


詳細

V1.1-設定値

初期の設定は見本と同じになっています、環境に合わせて変更して下さい。

文字コードはUTF-8ボム無しになっています。

v1_data.pl

変更可能な部分は「# 初期設定 ここから」と書かれている行から「# 初期設定 ここまで」と書かれている行までの部分です。文字コードはUTF-8ボム無し。

クッキーのパッチ値
$_->{Cookie_pat}
クッキーのパッチ値です。 通常、掲示板を入れるURLのディレクトリ部分を設定するか何も設定しない(空文字)です。
URL(最後に「/(スラッシュ)」を入れない)
$_->{url_html_dir}
スレッドのディレクトリまでアクセスするURLを設定します。通常「localhost」のままでOKです、その後のパスは、貴方のサイトに合わせてディレクトリパスを変更して下さい。
$_->{url_cgi}
top.cgiにアクセスするURLを設定します。詳細は上に同じです。
既存のディレクトリ(最後に「/(スラッシュ)」を入れない)
$_->{dir_skin}
skinのディレクトリを設定します。
作成ディレクトリパス(最後に「/(スラッシュ)」を入れない)
$_->{dir_html}
掲示板のHTML(スレッド)が収まるディレクトリを設定します。
デフォルト値でtop.cgiがあるディレクトリ内に作られます。
上の$_->{url_html_dir}でアクセスできる場所に設定します。
$_->{dir_log}
ログが保存されるディレクトリを設定します。
デフォルト値ではcgiがあるディレクトリ内に作られます。 サーバ側で、非公開フォルダが用意されている場合は、そのディレクトリ下を利用して下さい。
$_->{dir_tmp}
テンポラリ、一時ファイルが作られる場所です。
デフォルト値ではtop.cgiがあるディレクトリ内に作られます。
パーミッション
$_->{dir_log_permission}
ログ用などの非公開にするディレクトリのパーミッションを設定します。
パーミッションが変更できないサーバでは「""(空文字)」を設定して下さい。

-----掲示板の設定-----

$_->{bbs_titele}
掲示板の名前を設定します、一覧ページに大きく表示されているアレです。
$_->{s_maximgbyte}
アップロード容量MAX値、単位はバイトです。一回の投稿でアップロード可能なデータの最大値を設定。
この容量を超えた場合はエラーとなります。一般的に、500,000バイト以下にします。
$_->{s_maxhtml}
スレッドHTMLファイル1つあたりの許容量で、これを超えるとレスが書き込めなくなります。単位はバイトです。
$_->{s_maxcome}
コメント文字の許容量で、単位はバイトです。これを超えた場合はエラー画面が表示されます。
$_->{s_maxtnm}
コメント以外の文字の許容量です。
$_->{s_maxres}
レス番号の最大値です。これに達するとレスが書き込めなくなります。
$_->{s_minthrno}
スレッド番号の最小値、1以上で設定。
スレッド番号とは、スレッドにつけられたファイル名で、◎◎.htmlの丸の所に当てはまる数字です(ファイル番号と呼ぶ事があります)。
通常1から始めると思いますが、スレッドが増え過ぎた場合、例えば、後で100に変更すると、1~99番のスレッドは消えて無くなります、慎重に行って下さい。
$_->{s_maxthrno}
作成できるスレッド番号の最大値、最大値と最小値の差がスレッド保持可能数になります。
この値に達するとスレッドが立てられなくなります。
この数値のより大きなスレッド番号を持つスレッドは、一覧ページに表示されなくなるので、後で小さく変更する時は気を付けて下さい。
$_->{s_maxindex}
一覧ページに表示されるスレッドタイトルのインデックスの表示数です。一ページで表示されない物は分割されます。

si-skin.pl

投稿完了画面のHTMLのヘッダー部分なので、特に変更の必要性は無いと思いますが、変更したい場合の説明です。ヒアドキュメントになっています。文字コードはUTF-8ボム無し。

変更可能なのは、「return <<ECD;」の行から、「ECD」の行までです、これらの行は削除しないで下さい。

書き方は、<title>$_->{bbs_titele}</title>で変数が入っているだけで普通のHTMLと同じです。

spam.pl

スパムやアクセス規制を登録するファイルです。登録部分は、ヒアドキュメントになっています。文字コードはUTF-8ボム無しです。

規制は、CGIプログラムによるものなので、HTMLファイル(スレッド)ページの閲覧時には効果ありません。

  • $log_spam
    スパムのログファイルの場所を設定します。
    デフォルト値でcgiと同じディレクトリになっていて、spam_log.cgiと言う名前で保存されます。
    文字規制はエラーログに記録され、このログには記録されません。
    ログは、日付・リモートアドレス・規制内容、となっています。

IPアドレス規制
「### IPアドレス規制ここから ###」の行から「### ここまで ###」の行の間に挟みます。
既にいくつか入っていますが、こんな感じで一行に一つずつ入れると、投稿が制限されます。
「123.456.」このように減らして入れると、123.456.0.0~123.456.255.255まで規制されます。
※アドレス一塊の数字は255までしかありません。
クッキー規制
「### クッキー規制ここから ###」の行から「### ここまで ###」の行の間に一つずつ挟みます。
V1ではクライアントの投稿時のIDの数字がクッキーに登録されます、投稿ログを見る事で確認できます。
リファラ規制
「### リファラ規制ここから ###」の行から「### ここまで ###」の行の間に一つずつ挟みます。
リファラスパムやtop.cgiにリンクされたくないドメインなどを設定します。
UA(ユーザーエージェント)規制
「### UA規制ここから ###」の行から「### ここまで ###」の行の間に一つずつ挟みます。
検索ボット(クローラー又はスパイダー)を規制するのに便利です。
文字規制
「### 文字規制ここから ###」の行から「### ここまで ###」の行の間に一つずつ挟みます。
半角スペース及び全角スペースは指定できません。投稿されたくない語句を指定する事によって、荒らしやスパム投稿を防ぐのに有効です。

以下の矢印の左側の文字を指定する時は、矢印の右側の文字に置き換えて設定して下さい。
@ → @(半角を全角へ)
& → &amp;(文字実態参照へ)
< → &lt;
> → &gt;
" → &quot;
' → &#39;
\ → &#92;

top.cgi,receive.cgi

実行ファイルです。文字コードはUTF-8ボム無し。

#!/usr/bin/perl
perlの場所を示すもので、このCGIファイルはperlで処理しろと言う意味になります。
値はサーバに依存します、アップロードするサーバで指定されているので確認して下さい。
$set_data
初期設定のv1_data.plの場所を設定します。
デフォルト値は、top.cgiと同じ場所にある事を示しています、v1_data.plを別のディレクトリに移動させていないなら、そのままでいいです。
$adminPassword
管理画面へ入るログインパスワードです。
デフォルト値でxyzになっています、この値は必ず変更して下さい。変更しないと簡単に掲示板を潰されます。値はハイフン( - )とアンダーバー( _ )を含む半角英数字です。
# $r = "./do-setup.pl"; require $r; # セットアップ
この行は、セットアップを実行させる為の行です。
先頭の「#」を削除してアップロードするとブラウザでwebからアクセスした時にセットアップが実行されます。
セットアップ実行後には「#」を付けて元に戻して再度アップロード(上書き)して下さい。

skin.pl

top.cgiにアクセスすると表示されるタイトルの一覧ページのスキン。ヒアドキュメントになっています。 変数以外はHTMLの書き方と同じです。文字コードはUTF-8ボム無し。

内部に使われている変数は既に内容が設定されていもので展開されて表示されます、好みにより省く事も出来ます。

インサートスキン($ret = <<ECD;)
「$ret = <<ECD;」の行から「ECD」の行の間が編集できます。これがタイトルのインデックスの一つ分に当ります。
  • $y
    スレッド番号

  • $t
    スレッドのタイトル

  • $e
    投稿数

  • $d
    スレッドが立った日

  • $_->{url_html_dir}
    初期設定で設定された内容

スレッドの一覧ページ
「return <<ECD;」から「ECD」までの間が編集できます。タイトルのインデックスの一覧ページ全体です。
  • $xre
    インデックスの一覧

  • $xrea , $xreb
    存在するスレッドのスレッド番号で最も大きなものと、最も小さいもの

  • $xrec
    スレッドの総数

  • $xred , $xree
    表示中のスレッド番号

  • $xref
    ページリスト

  • $xback , $xnext
    前の一覧ページへ戻るリンクと、進むリンク

  • $_->{url_cgi}
    初期設定で設定された内容

skin2.pl

skin2.plはskin.plと同じようなもので、こちらはスレッドのスキンです。

インサートスキン($ret = <<ECD;)
「return <<ECD;」から「ECD」までの間が編集できます。
  • $_->{res_no}
    レスの番号

  • $_->{NAME}
    投稿者の名前

  • $_->{spri_time}
    投稿日時

  • $_->{COMMENT}
    投稿コメント

スレッドページ
「return <<ECD;」から「ECD」までの間が編集できます。スレッドページの全体です。
  • $skinre
    スレッド作成時のインサートスキン

  • $_->{bbs_titele}
    初期設定の掲示板の名前

  • $_->{title_no}
    タイトルの並び順番号(V1ではタイトルの並び順番号とスレッド番号は同じになります)

  • $_->{TITLE}
    投稿スレッドのタイトル

  • $_->{BBSI}
    ファイル番号(スレッド番号)返信時にフォームで送られます。

  • <!--  Thread insert  -->
    インサートスキン(レス)の挿入位置。インデントはしないで下さい。


詳細 取説

HitBBS 初めに お約束 設置の基本 見本 DL&更新情報


HitBBS (c)
 管理人:ひとちゃん