|
SunBoardの設置事例 |
最終更新日 2001/01/06(Sat)
|
||
![]() |
![]() ウィルスチェック無料、ドメイン取得維持無料 レンタルサーバー |
|||
◆SunBoard
とは…
KENT WEBで配付しているHTML表示型の掲示板です。
通常の掲示板と違い、ログをHTMLファイルに整形して表示するので、サーバの負荷が少なく
表示の非常に軽い掲示板です。
「設定」で書込みを管理者限定に出来るので、新着情報や日記
に利用できます。このホームページの更新日記もSunBoardの改造版です。
この解説では、SunBoard Ver2.3の設置方法を説明しています。
◆
スクリプトの入手方法
「KENT WEB」の自作CGIのプログラムコーナーからDownLoadして下さい。
DownLoadした圧縮ファイルの中には、以下の8個のファイルが入ってます。
| sunbbs.cgi | …掲示板本体スクリプト |
| sunbbs2.cgi | …過去ログ管理スクリプト |
| sunbbs.log | …ログファイル |
| pastno.dat | …過去ログ番号ファイル |
| index.html | …表示用HTML1ページ目 |
| index2.html | …表示用HTML2ページ目 |
| 1.html | …過去ログ1ページ目 |
| jcode.pl | …日本語コードライブラリ |
◆@nifty対応のディレクトリ構造
@niftyには、cgi-binにおけるファイルに制限があります。(共通事項参照)
SunBoardを設置するためには、以下の様なディレクトリを作成する必要
がありあります(ディレクトリ名は任意です)
Root/ ←あなたのルートパス | +--cgi-bin/ ←http://hpcgi▲.nifty.com/■■■■■■ | | | +--SunBoard/(cgi本体を設置する場所) | | | +--lock/(ロックファイル用ディレクトリ) | +--homepage/ ←http://homepage▲.nifty.com/■■■■■■ | +--SunBoard/(HTMLや画像ファイル等を設置する場所) ※青いディレクトリは新しく作成したモノ |
◆スクリプトの必須変更箇所(動かす為に絶対変更する所)
エディタ等でsunbbs.cgiを開きます。
以下の@〜Eをあなたの環境に合わせて変更します。
@ 1行目 … perlのパスを@nifty用に変更(必須です) #!/usr/local/bin/perl A34行目 … パスワードの変更(動作に必須でありませんが必ず変更して下さい) $pass = '123456'; # 管理用パスワード(英数字) B35行目 … トップページへの戻り先のリンク指定 $home = "../index.html"; # 戻り先 (index.htmlなど) ※SunBoardのヘッダーに表示される「Homeへ戻る」のリンク先の指定です。 この設定例では、http://homepage▲.nifty.com/■■■■■■/index.htmlと指定したのと同じ意味です。 C40行目 … 表示ファイルのディレクトリ指定(一番重要!) $htm_dir = "/homepage/SunBoard"; # 表示ファイルディレクトリ (フルパスだと / から) ※この行が一番重要!、意味はSunBoard用のHTML表示ファイル(index.html)の場所を 指定している所です。 スクリプトの中でopen命令に用いられている変数なので、パスで指定する必要があります。 SunBoardは、ここで指定されたディレクトリにある「index.html」と「index2.html」を更新します。 この例では、表示用HTMLファイルの場所は… <http://homepage▲.nifty.com/■■■■■■/SunBoard/index.html>になります。 D43行目 … SunBoardのCGIスクリプト自身のアドレス指定(これも重要!) # CGIスクリプト自身をURLで指定 $script = "http://hpcgi▲.nifty.com/■■■■■■/SunBoard/sunbbs.cgi"; ※SunBoardのCGI本体(sunbbs.cgi)のURLアドレスをhttp://〜からフルで指定してください。 CGIのURLアドレスは「homepage?」ではなく「hpcgi?」である事に特に注意しましょう。 ここで指定されたアドレスがCGI本体へのリンクや、<Form Action>の引数に使われてます。 E46行目 … SunBoardの表示用HTMLファイルのアドレス指定(これも重要!) # 表示ファイル (index.html) のある「ディレクトリ」をURLで指定 $htm_url = "http://homepage▲.nifty.com/■■■■■■/SunBoard"; ※C40行目で指定したSunBoardの表示ファイルディレクトリのURLアドレスを指定します。 表示ファイル(/SunBoard/index.html)のURLアドレスは「homepage?」である事に特に注意しましょう。 ここで指定されたアドレスがフレーム表示のリンクに使われてます。 ※アドレス指定の「▲」と「■■■■■■」の部分はあなたのアドレスに置き替えて読んでください。 ※その他の設計の指定方法は、KENT-WEBのSunBoardのプログラム設置例を参考にして下さい。 どうしてもスクリプト全文の変更個所を見たい方はココを参照して下さい。 |
◆スクリプトの任意変更箇所(機能やデザイン等を変更する場合)
エディタ等でsunbbs.cgiを開きます。
以下のF〜Mをあなたの好みで変更します。
| F22行目 … 掲示板のタイトル文字、色、サイズ $title = "Sun Board"; # タイトル名 $t_color = "#0000ff"; # タイトルの色 $t_size = 6; # タイトルのサイズ $t_face = 'MS Pゴシック'; # タイトル文字のタイプ G27行目 … 掲示板の壁紙、背景、文字、リンク色の指定 $bground = "http://homepage▲.nifty.com/■■■■■■/SunBoard/****.gif"; # 壁紙 (パス付きで指定) $bgcolor = "#ADDEFC"; # 背景色 $text = "#000000"; # 文字色を指定 $link = "#0000FF"; # リンク色を指定(未リンク) $vlink = "#0000FF"; # リンク色を指定(既リンク) $alink = "#FF0000"; # リンク色を指定(リンク中) H36〜38行目 … 記事の最大保持数、1ページの表示数、URL自動リンクの有無の指定 $max = 50; # 記事の最大保持数 $pagelog = 25; # 表示ファイル第1ページの記事数 $autolink = 1; # 自動リンク (0=no 1=yes) ※最大記事数は、あまり大きくすると危険です。(行数ではなく、投稿記事の数です) SunBoardでは表示ページが2ページしかないので、表示記事数はバランス良く指定しましよう。 I49行目 … SunBoardの動作モードの指定 $whatsnew = 1; # 新着情報ボードモード (0=no 1=yes) ※標準掲示板モード($whatsnew=0)なら記事投稿欄が表題部に表示されます。 新着情報モード ($whatsnew=1)なら記事投稿欄は、管理者しか表示できません。 J50〜54行目 … 記事表示部分の色指定及びポインタの形状指定 $obi_color = "#404040"; # 題名部の色 $point = '■'; # 題名部ポインタ $point2 = '▲'; # 戻り先部ポインタ $s_color = "#FFFFFF"; # 題名の色 $p_color = "#FFCC33"; # ポインタの色 ※投稿記事のタイトル部分の色指定です。表示イメージはココを参照。 K55〜57行目 … 掲示板タイトルをGIF画像にする指定 $t_gif = "http://homepage▲.nifty.com/■■■■■■/SunBoard/****.gif"; # タイトルGIF画像 (http://から記述) $tg_w = '250'; # タイトル画像の幅 $tg_h = '54'; # タイトル画像の高さ ※タイトルに画像を使用しないのであれば、ここは何も指定しなくて良いです。 L58行目 … 日付のフォーマット形式の指定 $date_type = 0; # 日付の種類 (0=洋式 1=和式) ※掲示板の動作モード(掲示板、新着ボード)によって以下の様に表示されます。 掲示板モードの時 新着情報モードの時 洋 式 2000/02/12(Mon) 19:37 2000-02-12(Mon) 和 式 2000年02月12日(月) 19時37分 2000年02月12日(月) M62行目 … HTMLタグの許可 $tagkey = 0; # 掲示板使用時のタグ許可 (0=no 1=yes) ※投稿記事にHTMLタグの使用を認める為のスイッチです。 |
◆ファイルロックの設定(任意)
N64行目 … ファイルロックの設定
$lockkey = 0;
# ロックファイル処理
(0=no 1=symlink 2=open)
$lockfile = './lock/sunbbs.lock'; #
ロックファイル名
※SunBoardのスクリプトの初期値は、$lockkey=0(ファイルロックなし)になってます。
このままでも良いのですが、投稿記事の衝突によるログの消失事故を防止する為に
ファイルロック機能を使う場合は、ロックファイルの設定を変更します。
ロックファイル処理は、symlink関数($lockkey=1)とopen関数($lockkey=2)が選択できますが、
@niftyではsymlink関数が使えるので、symlink関数($lockkey=1)を選択してください。
また、ロックファイルのディレクトリはパーミッションが[777]である必要があるので安全性
確保の為にロックファイル専用ディレクトリを作成してロックファイルの場所を指定します。
◆ファイルのアップロード
スクリプトの変更が完了したら、以下のディレクトリにアップロードして各ファイルのパーミッションを下記の通り変更します。
Root/ ←あなたのルートパス
|
+--cgi-bin/
| |
| +--SunBoard/
| | sunbbs.cgi パーミッション[755]
| | sunbbs.log パーミッション[666]
| | jcode.pl パーミッション[644]
| |
| +--lock/ パーミッション[777]
|
|
+--homepage/
|
+--SunBoard/(任意のディレクトリ名)
index.html パーミッション[666]
index2.html パーミッション[666]
*.gif (壁紙、タイトル、アイコン画像等)
※青いディレクトリは新しく作成したモノ
|
◆Sunbbs.cgiの実行とリンク指定
ここまでの最低限の設定で、SunBoardは@niftyで動きます。
SunBoardの実行スクリプトは「sunbbs.cgi」です。
このスクリプトのアドレス指定は@niftyでは以下の通りです。
http://hpcgi▲.nifty.com/■■■■■■/SunBoard/sunbbs.cgi
↑※homepage?ではないことに注意!
cgiスクリプトを直接実行する場合や、ホームページからリンクを
張る場合は上記のアドレス書式で指定してください。
※新着情報モードで初めて実行する場合
SunBoardを「新着情報モード」ではじめて実行する場合は、ブラウザから下記の様に指定します。
>http://hpcgi▲.nifty.com/■■■■■■/SunBoard/sunbbs.cgi?mode=admin_in
管理者専用のパスワード入力画面が表示されますので、1件目の記事を投稿して下さい。
2回目からは普通に呼び出せます。
◆過去ログ機能を使用する場合
(1)sunbbs.cgiの修正
SunBoardで過去ログ機能を使用するときは、sunbbs.cgiの72行目以降の以下の様に設定して下さい。
| ## --- 過去ログ設定
(sunbbs2.cgi 必須) $pastkey = 1; # 過去ログ機能 (0=no 1=yes) $past_dir = "/homepage/SunBoard"; # 過去ログのあるディレクトリ (フルパスだと / から) $pastno = './pastno.dat'; # 過去ログカウントファイル $log_line = '150'; # 過去ログ1ファイル当りの行数の限度 $subfile = 'http://hpcgi▲.nifty.com/■■■■■■/SunBoard/sunbbs2.cgi'; # 補助プログラムのファイル名 ※注意点 @niftyでは、HTMLファイルとCGIファイルのURL指定が異なるので、過去ログ用の 補助プログラムの呼び出し設定は、上記の様にhttp://からURLをフルで指定して下さい。 |
(2)sunbbs2.cgiの修正
次に過去ログ補助プログラム(sunbbs2.cgi)の基本設定を以下の通り設定します。
| ## ----- 基本設定
--------------------- # $script = './sunbbs2.cgi'; # スクリプト名 $nofile = './pastno.dat'; # カウントファイル名 $bbsfile = 'http://homepage▲.nifty.com/■■■■■■/SunbBoard/index.html'; # 掲示板への戻り先 $method = 'POST'; # method形式 (POST or GET) $logfile = './sunbbs.log'; # SunBoardのログファイル名 $past_dir = "/homepage/SunBoard"; # 過去ログのディレクトリ(フルパスだと / から) $past_url = "http://homepage▲.nifty.com/■■■■■■/SunbBoard"; # 過去ログのURL |
上記2つのの修正が完了したら、過去ログ関連ファイル(sunbbs2.cgi、pastno.dat、1.html)を
以下のディレクトリにアップロードして各ファイルのパーミッションを下記の通り変更します。
Root/ ←あなたのルートパス
|
+--cgi-bin/
| |
| +--SunBoard/
| | sunbbs.cgi パーミッション[755] ←※修正後のファイルを上書きアップロード
| | sunbbs.log パーミッション[666]
| | jcode.pl パーミッション[644]
| | sunbbs2.cgi パーミッション[755]
| | pastno.dat パーミッション[666]
| |
| +--lock/ パーミッション[777]
|
+--homepage/
|
+--SunBoard/(任意のディレクトリ名)
index.html (現行ログ1)パーミッション[666]
index2.html(現行ログ2)パーミッション[666]
1.html(過去ログ1)パーミッション[666]
*.gif (壁紙、タイトル、アイコン画像等)
※赤字のファイルをアップロードして下さい
|
◆その他の注意点
SunBoardの最大の特徴は、表示部にHTMLファイルを使用している事です。
一度生成されたHTMLファイルは、登録・編集機能でHTMLファイルを更新しないと表示が変わりません。
その為、デバッグ中はCGIスクリプトを変更しただけでは表示結果に反映しません。
表示部のデザイン等を変更した場合は、登録・編集機能で表示用HTMLファイルをを更新して動作確認
をして下さい。
SunBoardには、新規投稿記事を管理者にメールで通知する機能がありますが、
オリジナルのスクリプトではオフ(使用しない)に設定されてます。(68行目)
$mailing
= 0;
# 投稿があるとメール通知する(0=no 1=yes)
$mailto = 'user@host.ne.jp'; #
メールアドレス(メール通知する時)
$sendmail = '/usr/lib/sendmail'; # sendmailパス(メール通知する時)
@niftyでは自作cgiで「sendmail」が使えませんので、この機能は必ずオフにして下さい。
◆改造版の紹介
「DownLoad」のコーナーで作者が@nifty用に改造したSunBoardのスクリプトを3種類再配布してます。
(1)Sunday : 日記帳、HTMLタグを多用した投稿をプレビュー画面で確認できます。
(2)Sunclip : 日記帳、画像や音楽ファイルのアップロード機能が付いてます。
(3)Sunroom : SunBoardの掲示板モードをスレッドタイプの返信型掲示板に改造したモノ。
いずれもログをHTMLに整形して出力するタイプすから、閲覧時の動作が軽快です。
また、スクリプトの基本設定部分を集約して@niftyで設置し易くしてあります。