| WebForumの設置事例 | 最終更新日 2002/03/16(Sat) |
|||
![]() |
![]() ウィルスチェック無料、ドメイン取得維持無料 レンタルサーバー |
|||
◆ WebForum
とは…
・KENT WEBで配付している投稿記事をコメントツリー形式でリスト表示できる掲示板です。
・Web上から投稿記事のリスト表示を「ツリー表示」又は「新規順表示」に切り替えできます。
・投稿者が自分の記事を編集・削除できます。(投稿時にパスワードの登録が必要)
・管理人モードで全ての投稿記事の編集・削除が可能です。
・この解説では、WebForum Ver3.24の設置方法を解説しています。
表示サンプルはこちら(サンプル画面につき、新規投稿は出来ません)
◆ スクリプトの入手方法
「KENT WEB」の自作CGIのプログラムコーナーからDownLoadして下さい。
DownLoadした圧縮ファイルの中には、以下の8個のファイルが入ってます。
| jcode.pl | …日本語コードライブラリ |
| fold.pl | …ラインフォルダライブラリ |
| wforum.cgi | …WebForum本体スクリプト |
| wf_admin.cgi | …管理用の編集・削除スクリプト |
| wflog.cgi | …投稿記事のログファイル |
| title.gif | …GIF形式のタイトル画像 |
| pastno.dat | …過去ログ用 世代番号ファイル |
| 0001.cgi | …過去ログ用 1つ目の保存ファイル |
◆@nifty対応のディレクトリ構造
@niftyには、cgi-binにおけるファイルに制限があります。(共通事項参照)
WebForumを設置するためには、以下の様なディレクトリを作成する必要
があります(ディレクトリ名は任意です)
Root/ ←あなたのルートパス | +--cgi-bin/ ←http://hpcgi▲.nifty.com/■■■■■■ | | | +--wforum/(cgi本体を設置する場所) | | | +--past/(過去ログを保存する場所) | | | +--lock/(フィルロック用ディレクトリ) | +--homepage/ ←http://homepage▲.nifty.com/■■■■■■ | +--wforum/(タイトルや壁紙の画像ファイルを設置する場所) ※青いディレクトリは新しく作成したモノ |
◆スクリプトの変更箇所
変更するファイルは、wforum.cgiとwf_admin.cgiです。
(1)wforum.cgiの変更
エディタ等でwforum.cgiを開きます。
以下の設定例は、スクリプト本文内の記載順で設定項目を説明しています。
尚、設定例の文字の色の意味は以下の通りです。
●黒い文字…「スクリプトの本文」です。
●青い文字…「通常は変更する必要がない」設定です。
●赤い文字…「ユーザーが任意に変更できる」設定です。
●緑の文字…「設定項目の説明文章」です。
●紫の文字…「設定項目の注意事項」です。
| #!/usr/local/bin/perl
※@niftyのperlのパスを指定する(変更の必要なし) #┌───────────────────────────────── #│ WEB FORUM v3.24 (2002/02/04) #│ Copyright(C) KENT WEB 2002 #│ webmaster@kent-web.com #│ http://www.kent-web.com/ #└───────────────────────────────── $ver = 'Web Forum v3.24'; : (コメント中間省略) : #============# # 基本設定 # #============# # ライブラリ取込み require './jcode.pl'; require './fold.pl'; ※上記の2行は特に変更する必要はありません。 圧縮ファイルに含まれている「jcode.pl」と「fold.pl」をwforum.cgiと同じ場所に転送します。 # 掲示板タイトル名 $title = "Web Forum"; ※掲示板のタイトル、お好きな名前にして下さい。 この変数は<title>タグで使用しますのでタイトルに画像を使用する場合でも指定して下さい。 # タイトルの色 $t_color = "#004080"; ※掲示板のタイトル色を16進数カラーコードで指定します。 # タイトルの大きさ(ポイント数:スタイルシート) $t_point = '18pt'; ※掲示板タイトルの文字の大きさをポイント数で指定します。 # タイトル/本文の文字タイプ $t_face = 'MS UI Gothic'; ※掲示板タイトルのフォントタイプを指定します。 # タイトル画像を使用するとき $t_gif = "http://homepage▲.nifty.com/■■■■■/wforum/title.gif"; $t_wid = 151; # 画像の横サイズ(ピクセル) $t_hgt = 28; # 画像の縦サイズ(ピクセル) ※タイトル画像のURLをhttp://から指定します。 @niftyでは、CGIと同じ場所に画像ファイルを置いても正しく表示できません。 画像ファイルのあるURLをhttp://からフルで指定して下さい。 ※タイトル画像が表示されない時は? @niftyでは、CGIと同じ場所に画像ファイルを置けません。 この設置事例では、FTPで/homepage/wforum/(URLは、http://homepage▲.nifty.com/■■■■/wforum/) ディレクトリの中にタイトル用画像ファイル(title.gif)を転送することを前提に説明しています。 タイトル用の画像ファイルを転送したURLをhttp://からフルで正しく指定して下さい。 タイトル画像が表示されない理由は、大抵の場合画像ファイルの転送先URLの指定間違いです。 # 本文の文字大きさ(ポイント数:スタイルシート) $pt = '10pt'; ※投稿記事の文字の大きさをポイント数で指定します。 # 最大記事数 $max = 150; ※投稿記事の最大保存数を指定します。あまり大きな数にすると掲示板の動作が重くなります。 最大保存数を超えた場合は古い記事から削除されます。 「過去ログ機能」を使用している場合は、最大保存数を超えた記事は過去ログに保存されます。 # 戻り先のURL(index.htmlなど) $home = "http://homepage▲.nifty.com/■■■■■/index.html"; ※掲示板上部メニューの「もどる」にリンクするページ(通常はトップメニュー)のURLを指定します。 # 壁紙・背景色・文字色など $bground = "http://homepage▲.nifty.com/■■■■■/wforum/****.gif"; # 壁紙の指定 (http://から記述) ※掲示板の背景に壁紙を使用する場合に壁紙のGIF画像ファイルのURLをhttp://から指定します。 壁紙を指定する例は以下の通りです。 $backgif = "http://homepage▲.nifty.com/■■■■■/wforum/****.gif"; ↑あなたのアドレスに合わせて設定します。 (ファイル名「****.gif」は、壁紙の画像ファイル名を指定する) ※壁紙を設定したのに表示されない時は? @niftyでは、CGIと同じ場所に画像ファイルを置けません。 この設置事例では、FTPで/homepage/wforum(URLは、http://homepage▲.nifty.com/■■■■/wforum/) というフォルダの中に壁紙用の画像ファイルをFTP転送することを前提に説明しています。 壁紙用のGIF画像ファイルの転送先URLをhttp://から正しく指定して下さい。 大抵の場合、壁紙用GIF画像ファイルの転送先URLの指定間違いです。 $bgcolor = "#EEEEEE"; # 背景色 $text = "#004080"; # 文字色 $link = "#0000FF"; # リンク色(未訪問) $vlink = "#008080"; # リンク色(既訪問) $alink = "#DD0000"; # リンク色(訪問中) ※掲示板の背景色、文字色、リンクの色等を16進カラーコードで指定します。 # スクリプト名 $script = './wforum.cgi'; ※掲示板本体スクリプト名の指定。(特に変更の必要無し) # ログファイル名 $logfile = './wf_log.cgi'; ※投稿記事記録ログファイル名の指定。(特に変更の必要無し) # 管理ファイル $admin = './wf_admin.cgi'; ※管理者用(編集・削除)スクリプト名の指定。(特に変更の必要無し) # タグの許可 (0=no 1=yes) $tagkey = 0; ※投稿記事本文でHTMLタグの使用を「許可しない/する」の設定を行います。(初期値は「0」です) HTMLタグを許可する場合は「$tagkey = 1;」と設定して下さい。 ※掲示板の投稿記事にHTMLタグを全て許可するのは、運用上の危険が伴います。 <font>タグの閉じ忘れや<table>タグの閉じ忘れが発生すると掲示板が壊れる恐れもあります。 # ロックファイル機構 # 0 : 行なわない # 1 : 行なう(symlink関数式) # 2 : 行なう(mkdir関数式) $lockkey = 0; ※初期値は0(ロックしない)なので、このままでもOKですが、同時アクセスによるログの破損 を防止するために指定しておく方が無難です。 @niftyではsymlink関数が使えるので、$lockkey=1;(symlink関数)が推奨です。 ロックファイル機構を使用する($lockkey=1;)場合は、/cgi-bin/wforum/lock/というフォルダを作成して フォルダのパーミッションを[777]にして下さい(ニフティの場合は755でもOK) # ロックファイル名 $lockfile = './lock/wforum.lock'; ※この行の指定は特に変更する必要がありません。 # URL自動リンク (0=no 1=yes) $autolink = 1; ※投稿記事本文中のURLを自動リンクさせる指定です。 # 記事の [題名] の色 $sub_color = "#BC0000"; ※投稿記事の題名の色指定(初期値は赤色系) # 記事下地の色(一括表示時等) $tbl_color = "#FFFFFF"; ※投稿記事一括表示のテーブル背景色を16進数カラーコードで指定します(初期値は白色) # 記事にNEWマークを付ける時間 $new_time = 48; ※この設定時間内に投稿された新着記事には、記事リストに「NEW」マークが付きます。 # NEWマークの色 $new_color = "#FF3300"; ※上記の新着記事の「NEW」マークの色指定です。(初期値は赤色系) # NEWマークの表示形態 # → 画像を使用する場合には $newmark = '<img src="./new.gif">'; # というように IMGタグを記述してもよい $newmark = 'new!'; ※「NEW」マークの文字を指定します。画像を使用する場合は以下の様に設定します。 $newmark = '<img src="http://homepage▲.nifty.com/■■■■■/wforum/new.gif">'; ↑あなたのアドレスに合わせて設定します。 (ファイル名「new.gif」は、画像ファイル名を指定する) ※Newマークを設定したのに表示されない時は? @niftyでは、CGIと同じ場所に画像ファイルを置けません。 この設置事例では、FTPで/homepage/wforum(URLは、http://homepage▲.nifty.com/■■■■/wforum/) というフォルダの中に壁紙用の画像ファイルをFTP転送することを前提に説明しています。 壁紙用のGIF画像ファイルの転送先URLをhttp://から正しく指定して下さい。 大抵の場合、画像ファイルの転送先URLの指定間違いです。 # 記事NOの色 $no_color = "#800000"; ※記事リストの記事Noの色指定です。(初期値は茶色) # 新着記事一括の記事数 $sortcnt = 10; ※掲示板上部メニューの「新着記事」で一括表示する新着記事の数を指定します。 # 頁あたりツリー表示数 $p_tree = 10; ※1ページに表示するツリーの数を指定します。(この数を超えたら次ページに表示されます) # リストに表示する「記事タイトル」の長さ(文字数:半角文字換算) $sub_length = 30; ※記事リストに表示するタイトルの長さ(この長さを超える部分は省略して表示) # メールアドレスの入力を必須 (0=no 1=yes) $in_email = 0; ※新規記事投稿時に、Eメールアドレスの入力を必須項目にする場合は「1」を指定します。 # レスがついたらツリー毎トップへ移動 (0=no 1=yes) $top_sort = 1; ※返信記事の付いたツリーをトップに移動するオプションの指定です。 # レスは下から順に付ける (0=no 1=yes) $bot_res = 1; ※同一スレッドで同じ階層の返信記事を上から下へ(旧い→新しい)順に表示します。 # 引用部色変更 # 1) ここに色指定を行うと「引用部」を色変更します # 2) 必ずタグは禁止処理にしてください ($tagkey=1;) # 3) この機能を使用しない場合は何も記述しないで下さい ($refcolor="";) $refcolor = "#804000"; ※投稿記事の引用部分(先頭に「>」記号のある行)の表示色を指定します。 この指定を行うときには、タグ禁止($tagkey=0;)にして下さい。 # methodの形式 (POST/GET) $method = 'POST'; ※この行の指定は変更しないで下さい。 # 記事の更新は「method=POST」限定(セキュリティ対策) # 0 : no # 1 : yes $MethPost = 1; ※この行の指定は変更しないで下さい。 # 投稿があるとメール通知する : sendmail必須 # 0 : 通知しない # 1 : 通知する(自分の記事は送信しない) # 2 : 通知する(自分の記事も送信する) $mailing = 0; ※@niftyでは「sendmail」が使えないので、この設定は無効です。 ※WebForumには、新規投稿記事を管理者にメールで通知する機能がありますが、 初期値ではオフ(使用しない)に設定されてます。 @niftyでは自作cgiで「sendmail」が使えませんので、この機能は必ずオフにしておいて下さい。 # メール通知する際のメールアドレス $mailto = 'xxx@xxx.xxx'; ※@niftyでは「sendmail」が使えないので、この設定は無効です。 # sendmailパス(メール通知する時) $sendmail = '/usr/sbin/sendmail'; ※@niftyでは「sendmail」が使えないので、この設定は無効です。 # ツリーのヘッダー記号 $treehead = "★"; ※投稿記事ツリーの親記事のヘッダー記号(スレッドを一括表示するコマンドのリンクになります) # 過去ログ機能 (0=no 1=yes) $pastkey = 0; ※掲示板の最大保存数を超えた旧い記事を過去ログに移動する機能の指定です。 過去ログ機能を使用する場合は、pastno.datと0001.cgiの2つのファイルも使用します。 # 過去ログカウントファイル $nofile = './pastno.dat'; ※過去ログの世代番号管理ファイル名の指定。(特に変更の必要無し) # 過去ログのディレクトリ(最後は / で閉じる) $pastdir = './past/'; ※過去ログ用ファイルの格納場所(特に変更の必要無し) # 過去ログ1ページ当りの最大行数 # → これを超えると自動的に次ファイルを生成します $max_line = '650'; ※過去ログ1ページ当たりの最大保存行数。(この数を超えると新しい過去ログを自動生成します) # アクセス制限(ホスト名を記述) @deny = ( '*.hogehoge.xxx', '*.proxy.xxx', '127.0.0.*', '', '', '', ''); ※掲示板へのアクセス制限を行いたいユーザーのホスト名を記述します。 @niftyでは、DNS逆引きが出来ませんので、ホストの指定にはIPアドレスを使ってください。 設定例(127.0.0.*)の様に、IPアドレスの指定にワイルドカードを使えます。 また、投稿者のIPアドレスは、管理者モードの記事一覧で調べることが出来ます。 #============# # 設定完了 # #============# |
(2)wf_admnin.cgiの変更
エディタ等でwf_admnin.cgiを開きます。
このCGIは、掲示板ログの編集/削除を行う管理者用スクリプトです。
以下の赤い部分をあなたの環境か好みに合わせて変更します。
| #!/usr/local/bin/perl ※@niftyのperlのパスを指定する(変更の必要なし) #┌───────────────────────────────── #│ Web Forum for Admin v3.06 (2001/07/14) #│ Copyright(C) Kent Web 2001 #│ webmaster@kent-web.com #│ http://www.kent-web.com/ #└───────────────────────────────── $ver = 'WF ADMIN v3.06'; #┌───────────────────────────────── #│[ 注意事項 ] #│ 1. このスクリプトはフリーソフトです。このスクリプトを使用した #│ いかなる損害に対して作者は一切の責任を負いません。 #│ 2. 設置に関する質問はサポート掲示板にお願いいたします。 #│ 直接メールによる質問は一切お受けいたしておりません。 #└───────────────────────────────── #============# # 設定項目 # #============# # 文字コードライブラリ require './jcode.pl'; ※上記の行は特に変更する必要はありません。 圧縮ファイルに含まれている「jcode.pl」をwforun.cgiと同じ場所に転送します。 # パスワード (半角英数字で) $pass = '0123'; ※管理者用のパスワードです。(必ず変更して下さい) # スクリプト名 $script = './wf_admin.cgi'; ※管理者用(編集・削除)スクリプト名の指定。(特に変更の必要無し) # ログファイル $logfile = './wf_log.cgi'; ※投稿記事記録ログファイル名の指定。(特に変更の必要無し) 変更する場合は、必ずwforum.cgiで使用しているファイル名と同じにして下さい。 # 掲示板のファイル $bbsurl = './wforum.cgi'; ※掲示板本体スクリプト名の指定。(特に変更の必要無し) # タグ処理 (0=no 1=yes) $tagkey = 0; ※投稿記事本文でHTMLタグの使用を「許可しない/する」の設定を行います。 HTMLタグを許可する場合は「$tagkey = 1;」と設定して下さい。 ※掲示板の投稿記事にHTMLタグを全て許可するのは、運用上の危険が伴います。 <font>タグの閉じ忘れや<table>タグの閉じ忘れが発生すると掲示板が壊れる恐れもあります。 # ロックファイル (wforum.cgiの設定に合わせること) $lockfile = './lock/wforum.lock'; ※この行の指定は特に変更する必要がありません。 変更する場合は、必ずwforum.cgiと同じ設定にして下さい。 # ロックファイル機構 # 0 : 行なわない # 1 : 行なう(symlink関数式) # 2 : 行なう(mkdir関数式) $lockkey = 0; ※初期値は0(ロックしない)なので、このままでもOKですが、同時アクセスによるログの破損 を防止するために指定しておく方が無難です。 @niftyではsymlink関数が使えるので、$lockkey=1;(symlink関数)が推奨です。 ロックファイル機構を使用する($lockkey=1;)場合は、/cgi-bin/wforum/lock/というフォルダを 作成してフォルダのパーミッションを[777]にして下さい(ニフティの場合は755でもOK) # methodの形式 (POST/GET) $method = 'POST'; ※この行の指定は変更しないで下さい。 # 記事の更新は method=POST 限定 (0=no 1=yes) $MethPost = 1; ※この行の指定は変更しないで下さい。 # bodyタグ $body = '<BODY BGCOLOR="#F1F1F1" TEXT="#000000" link="#0000E3" vlink="#008080">'; ※管理者モードの画面の背景色、リンク色の指定を行います。 壁紙を使う場合は、以下の書式で任意に設定してください。 <body background="壁紙ファイル名" bgcolor="背景色" text="文字色" link="リンク色" vlink="リンク訪問後"> #============# # 設定完了 # #============# |
◆ファイルのアップロード
スクリプトの変更が完了したら、以下のディレクトリにアップロードして
各ファイルのパーミッションを下記の通り変更します。
Root/ ←あなたのルートパス
|
+--cgi-bin/
| |
| +--wforum/ パーミッション[755]
| | jcode.pl パーミッション[644]
| | fold.pl パーミッション[644]
| | wforum.cgi パーミッション[755]
| | wf_admin.cgi パーミッション[755]
| | wf_LOG.cgi パーミッション[666]
| | pastno.dat パーミッション[666] ※過去ログに必要
| |
| +--past/ パーミッション[777]
| | 0001.cgi パーミッション[666] ※過去ログに必要
| |
| +--lock/ パーミッション[777]
|
+--homepage/
|
+--wforum/(任意のディレクトリ名)
title.gif (タイトル用画像ファイル)
※青いディレクトリは新しく作成するモノです。
past/ディレクトリは過去ログ機能を使用する場合に必要。
lock/ディレクトリはファイルロック機能を使用する場合に必要です。
上記2つのディレクトリのパーミッションは[777]にして下さい。
設置場所がニフティの場合は[755]でも動作します。
|
◆動作確認
ファイルの転送が完了したら、動作確認を行います。
ブラウザから以下のアドレスを指定して実行します。
http://hpcgi▲.nifty.com/■■■■■■/wforum/wforum.cgi
↑※homepage?ではないことに注意!
ホームページからリンクを張る場合は以下の様にします。
<a href="http://hpcgi▲.nifty.com/■■■■■■/wforum/wforum.cgi">掲示板</a>
※上記のアドレス指定の赤字の部分は、自分の@niftyのURLに合わせて変更して下さい。
「サーバーエラー」や「CGI実行エラー」が出る場合は、以下の点を確認して下さい。
(1)wforum.cgiのパーミッションが755に変更されているか確認する。
(2)jcode.plとfold.plが、wforum.cgiと同じ場所にFTPで転送されているか確認する。
(3)cgi-bin/wforum/lock/ディレクトリのパーミッションが777に変更されているか確認する。
(4) 各行末の「;」記号の欠落や全角の空白記号が付加されていないか確認する。