参考:くずはすくりぷと Rev.0.1 Preview 9 (2000.9.3)
・くずはすくりぷと
http://kuzuha.tripod.co.jp/・jcode.pl
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/
・ログとカウンタのディレクトリ
log と count という2つのディレクトリを、bbs.cgiと同じ階層(場所)に作成しておく。中身は空っぽのまま。
・CGIが動くサーバ
・FTPクライアント
・エディタ
[public_html] (701) | |--------- [cgi-bin] (701) | |-- bbs.cgi (700) |-- bbs.log (600) |-- jcode.pl (604) | |-- [log] (755) |-- [count] (755) | |-- [sub] (701) | |-- bbsadmin.pl (700) |-- bbscust.pl (700) |-- bbslog.pl (700) |-- bbssrc.pl (700) |-- bbstopic.pl (700) []はディレクトリ、()はパーミッションの値
以下は、http://cortazar.hypermart.net/cgi-bin/bbs.cgiに掲示板を設置することを前提として、変更の例を示した。
line 1 #! /usr/local/bin/perl perlのpath名。 必ず1行目に記述し、#!の前にスペースや改行を入れてはいけない。 サーバによってパス名が違うので、あらかじめFAQなどを参照すること。 普通は上記のデフォのままか、下記のパスで動く。 #! /usr/bin/perl ※ここでパスを変更する場合、[sub]ディレクトリの中のファイルもすべて変 更しておくこと。 (bbsadmin.pl,bbscust.pl,bbslog.pl,bbssrc.pl,bbstopic.pl)
line 17-18 # 掲示板CGIのURL $cgiurl = 'http://strange.kurumi.ne.jp/strangeworld/bbs.cgi'; ↓ $cgiurl = 'http://cortazar.hypermart.net/cgi-bin/bbs.cgi';
line 23-25 # gzipのパス # (gzip圧縮転送機能を使用しない場合は空のままにしておきます) $gzip = '/bin/gzip'; ↓ $gzip = ''; hypermartなど、大半の無料サーバではgzipが使えないので空にする。空=空 白スペースではないので注意。gzipのパスを間違うとエラーになるため、パス が確認できないうちは空にしたほうが無難だろう(IEでは正常に動作してもNN ではエラーになるケースもある)。 普通は下記のいずれかがgzipのパスとなる。 /bin/gzip /sbin/gzip /usr/bin/gzip /usr/sbin/gzip /usr/local/bin/gzip
line 32-33 # CGIを設置するホストアドレス $bbshost = 'strange.kurumi.ne.jp'; ↓ $bbshost = 'cortazar.hypermart.net';
line 62-68 # サーバー設置場所と日本との時差 # 日本 : 0 # グリニッジ標準時 : -9 # アメリカ : -14 (ワシントン) # : -20 (ミッドウェー諸島) # ニュージーランド : 3 $difftime = 0; ↓ $difftime = -16; hypermartの場合は16時間遅れているので-16とする。国内サーバの場合は0の ままでよい。
line 70-71 # 掲示板の名前 $bbstitle = 'あやしいわーるど@くずは'; ↓ $bbstitle = 'あやしいわーるど@呂布';
line 107-110 # 過去ログの保存形式 # 0 : HTML形式 (トピック一覧、過去ログからの引用機能は使用できません ) # 1 : バイナリ形式 $oldlogfmt = 1; バイナリ形式の過去ログは拡張子が.datになる。過去ログからフォロー投稿、 ◆の一覧参照が可能。また、ログのサイズが小さくなるので、サーバの容量を 節約できる。 どちらを選択しても特に問題はないと思う。
line 117-124 # 過去ログの保存方法 # 0 : 日毎 # 1 : 月毎 $oldlogsavesw = 0; # 過去ログの保存日数 # (過去ログの保存方法が日毎の場合にのみ有効) $oldlogsaveday = 5; 書き込みが一日数件の個人規模の板なら月毎形式で保存したほうが、読み出し や検索がしやすいと思う。 日毎形式の場合は、設定した保存日数をすぎると自動的にログが削除されてし まうので注意。
line 141-143 # 連続投稿防止コード(必ず変更すること) $protect_a = 12345678; # 0以外の数字から始まる8桁の数字 $protect_b = 45; # 0以外の数字から始まる2桁の数字 指示通りに、適当な数値に変更すればOK。
line 188-189 # 管理人の名前 $adminname = 'くずは'; 騙り防止機能を利用するなら自分のハンドルを入れておく。不要な場合は空に。 騙り防止機能とは、投稿者欄に「管理用パスワード」を入れて書き込まないと、 たとえば「呂布(騙り)」と表示される。 メイン板の管理や、嫌がらせにでも遭わないかぎり設定しないほうが気楽だと 思う。
line 194-195 # 管理用パスワード(最初は空のままにしておいてください) $adminpost = ''; 後述することになるが、とりあえず空のままにしておく。
line 197-198 # 管理モード移行用キーワード(必ず変更すること) $adminkey = 'adminlogin'; 投稿の削除などを行なう際、投稿者欄に「管理用パスワード」、内容欄に「管 理モード移行用キーワード」を入力して投稿すると、管理モードに移行する。 ちょっとややこしいかもしれないが、とりあえずパスワードは変更しておこう。 ISPやメールアカウントなどで用いているパスワードは、ここではなるべく使 用しないこと。掲示板を設置するサーバなど覗かれる可能性のあるものだと 認識するのが、いちばんのセキュリティだと思う。
line 200-201 # 広報室のURL $infopage = 'http://kuzuha.tripod.co.jp/'; ↓ $infopage = 'http://cortazar.hypermart.net/';
そのほかの設定については特に解説しなくてもわかると思う。 わからない場合はデフォのままでOKだと思う。
(FTPクライアントの基本的な使い方は付属のドキュメントを参照のこと)すべてのファイルとディレクトリ(フォルダ)を、テキストモード(ASCIIモード)で送信する。
ディレクトリ構造に注意。[cgi-bin]ディレクトリの中が次のようになっていることを確認する。
bbs.cgi bbs.log jcode.pl [count] [log] [sub]
下図を参考に、それぞれパーミッションを変更する。ディレクトリのパーミッションも変更し忘れないように注意!
[public_html] (701/705/755) | |--------- [cgi-bin] (701/705/755) | |-- bbs.cgi (700/705/755) |-- bbs.log (600/606/666) |-- jcode.pl (604/644) | |-- [log] (755) |-- [count] (755) | |-- [sub] (701/705/755) | |-- bbsadmin.pl (700/705/755) |-- bbscust.pl (700/705/755) |-- bbslog.pl (700/705/755) |-- bbssrc.pl (700/705/755) |-- bbstopic.pl (700/705/755) []はディレクトリ、()はパーミッションの値hypermartやvirtualaveではそれぞれ左の数値でOKだが、サーバによっては動かないことがある。その場合、左から順に変更していく。
右に行くに従ってセキュリティが甘くなると考えておいてほしい。
あと一息だ、がんばれъ( ゚ー^) 手順を箇条書きにするので、このとおりに作業を続けていこう。
1:設置したURLにアクセスすると、パスワードの設定画面が表示される。 2:任意のパスワード(6文字以上の半角英数字)を入力する。 3:JBpdYtgMI8.p9といった、暗号化ずみパスワードが表示される。 4:表示された暗号化ずみパスワード(JBpdYtgMI8.p9など)を、 bbs.cgiの「管理用パスワード」欄に記入する。 > line 194-195 > # 管理用パスワード(最初は空のままにしておいてください) > $adminpost = 'JBpdYtgMI8.p9'; 5:書き換えたbbs.cgiを、再びFTPクライアントで送信する。完了!
404 file not found が表示される(;´Д`) ・実際に掲示板を設置したURLと、bbs.cgiで設定したURLは同じか。 ・ファイルの場所が間違っていないか。cgi-binの中にbbs.cgiはあるか。 403 forbidden が表示される(;´Д`) ・パーミッションを確認する。 ・bbs.cgiなどのCGIファイルだけでなく、ディレクトリのパーミッションも 変更したか。 500 internal server error が表示される(;´Д`) ・bbs.cgiの設定が間違っていないか。 ・1行目のperlのパスをFAQなどで確認したか。 ・1行目のperlのパスの前に改行やスペースは入っていないか。 ・gzipのパスは確認したか。不明な場合は空にする。 ・「空」は無記入のことで、「空白スペースを入れる」ことではない。 ・jcode.plは存在するか。 ・そもそも設置したサーバはCGIを使えるのか。 ・bbs.cgiの変更部分で、「'」や「;」を消したりしていないか。 それでもエラーが出る場合、パソコンの中のファイルもサーバのファイルも いったん全部消して、最初からやり直したほうが早いと思う。bbs.cgiの設定 を必要最低限だけ慎重に変更し、テキストモードでアップし、パーミッション を変更。 500エラーについては、下の項目も参照してほしい。
perl文にはいくつかの約束事がある。これを知っておけば、カスタマイズし てエラーが出ることはなくなると思う。 1:コメント文の先頭には#を入れる 2:perl文の行末には;を入れる 3:print"〜"; 文中では「"」を「\"」に変更する。 くずはすくりぷとでは特に意識しなくてもいいが、""で囲まれていたら、 その中の"は\"と表記しないと、それが"という「文字」なのか「命令」な のか混乱してしまうということ。 4:文字化けする漢字は、後ろに「\」を置く。 たとえばメイソをリンクするときは「メイソ」→「メイソ\」である。 次の文字などが文字化けを起こすので注意。「申」「十」「ソ」「能」 「予」「貼」「表」「噂」「圭」「兔」「饅」 5:全角スペースはエラーの原因になる。 perlで出力されるHTMLをカスタマイズするとき、始めのうちは必ずスペー スは半角で入力しておこう。 6:@を含む文字列(メールアドレス)を$adminmail以外に記述する場合は、 「@」→「\@」のように変換する。3と同じ理由。 <A href="mailto:$adminmail">連絡先</A> できれば、bbs.cgiで設定された変数($adminmail)を記述するようにした ほうがいいが、わからない場合はbbs.cgiの設定以外には書かないこと。
工事中。
このページは、くずはすくりぷと作者のくずはちゃんとは無関係です。getlog作者のログ商人さんとも無関係です。このページにTaiする苦情は宇多田レイパー宛にお願いします。
Team
MIZUIROのshinさんのコンテンツ「あやしいわーるどCGIスクリプト設置の手引き」とも無関係ですがパクらせていただきました。どうもすみません。
俺と同じ、perlはよくわからんが自分の掲示板を作成したいという文系のぁゃιぃ住民向けに手引きを書きました。理系の人はこんなの見なくても大学サーバのひとつやふたつハカーできますよね(≧▽≦)
いろんな書き込みやアドヴァイスを参考にさせてもらっています。どうもありがとうございます。つーかまんこ。