サルでも解る?!あめぞう型掲示板作成
解説:三河人&その他有志一同
初版 2001.07.18
最終更新日 2006.06.04
2006.06.04 追記
〜最初の前置き〜
本文は、かなりの初心者でも「あめぞう型掲示板(=サポートスクリプト)」を設置出来るように
説明しているつもりですが、
「これを見ても全然解らない」「書いてある通りにやってみたけど動かない」と言って、
すぐに「解らないから教えて」と聞きに来る方は、早々に設置を諦めてもらう方が良いと思います。
ある程度の気力・自分で調べようとする心構えがある方でないと、総合掲示板の設置・運営は無理です。
実際、過去にオリジナルのサポートスクリプトを利用して5年以上続いた総合掲示板は存在しません。
「個人板(単一の掲示板)のみで良いから作成したい」という方は、以下のサイトを
利用する事をお奨めします。1分程で確実に「あめぞう型掲示板」の作成が完了します。
http://www.amebbs.com/bbsmtn.html
「絶対に総合掲示板を自分で作る!」という気力を持つ方のみ、以下へお進み下さい。
〜目 次〜
■0.はじめに
■1.必要なもの
■2.サポートスクリプトの意味は?
■3.CGI設置可能な鯖&アカウントの取り方は?
■4.スクリプトの設置方法は?
■5.さて、スクリプトの変更&下準備です!
■6.設置しちゃいましょう!
■7.そろそろ動くよ?
■0.はじめに
時は2000年9月…。
いろんな人に教えてもらいながら『あめぞう型掲示板』をヴァーチャルアヴェニューへ設置して数週間後。
私が運営しています「三河版」にこんなスレッドが立ちました。
1サルでも解る掲示板作投稿者:
あめざー歴3ヶ月の私 投稿日:09月13日(水)05時01分45秒
- こんばんわー三河人さん初めまして。とある方からの紹介で来ました。
私はあめざー歴3ヶ月(PC歴6ヶ月)の超素人です。こんな私にも
あめぞうタイプの掲示板を作れるようになるでしょうか?
CGIのCも解りませんが、なんとか頑張って作りたいと思ってます。
なにせおさるさん並みなので、最初から教えて頂けるようどうか御教授の方
よろしくお願いします。 |
…私だってCGIを覚えはじめて3ヶ月しか経ってなかったんですけど…。
私なんかが教える事が出来るのかなあ…?
そんな戸惑いもありながらですけど
「いっちょ、やってみますか!」 と言う感じで始めてみました。
この場をお借りしまして、色々な事を教えて下さいました方々へお礼を申し上げまして
挨拶とさせていただきます。多謝。
つー訳で、早速はじめてみようかと思います。
■1.必要なもの
あめぞう型掲示板を設置するにあたり、必要なものをまず用意しないといけませんね。
では必要なものは何かと言いますと、以下のものが最低限必要です。
1.あめぞう型スクリプト一式
2.Perlが動作可能であるアカウント
3.jcode.pl
4.FTPツール(もしくはそれに該当するアカウントへのアップ/ダウンロードツール)
まず「1.あめぞう型スクリプト」。これがないと話になりませんね。
現時点で一般に「あめぞう型スクリプト」と言いますと、通称「サポートスクリプト」を指します。
サポートスクリプトは「あめぞう(仮)」の管理人であるサポート氏が作りました最高傑作の
スクリプトです。
現在主流の2ch型掲示板に比べますとシンプルな作りになっていますが、
無駄が無い・動作が軽い・掲示板の板を増やすのが容易である・設置が簡単 等々…
といった優れたスクリプトです。
さて、サポートスクリプトですが、以下のような構成になっています。
これらをどうやって設置するかは追々説明していきたいと思います。
まずはこれらの必要なファイルを入手して下さい。
※上記のファイル名をクリックしますと、各ファイルが表示 又は DL出来ます。
今ですと、あめぞう(仮)にて再公開中ですのでそこから入手出来ると思います。
注)サポート氏としてはあくまでスクリプトを「公開」しているのであって「配布」はしていません。
但し、第三者が使用するにあたっては制限を特に付けないとの事ですので、後述する点を除いて自由という事になります。
続いて「2.Perlが動作可能であるアカウント」。これも無いと当然ダメですね。
アカウント(以下『垢』と表記)を取る場所としまして、
無料サーバ(以下『無料鯖』と表記)か有料サーバ(以下『有料鯖』と表記)があります。
無料鯖 又は 有料鯖 についてどれを取れば良いのか解らない方は、寺子屋@三河版にあります
「無料鯖スレッド」「有料鯖スレッド」を参考にして下さい。
ちなみに私が無料鯖でお勧めなのは、バーチャルアベニュー か フリーウェブ(現:isweb) です。
注)現在、ヴァーチャルアベニューに関しては、使用容量が50MBを超えた場合は有料となりますので注意して下さい。
続いて「3.jcode.pl」。これも一応必須です。
投稿内容を正しく日本語変換したりするのに使います。
かなり有名なスクリプトですので、ちょっと探せば直ぐに見つかると思いますので
どっかから拾ってきて下さい(笑)
※ココからも入手出来ます。
最後に「4.FTPツール」。これは使い易いものでしたら何でも構いませんが、
「どれを使えば良いのか解らない」という方は「FFFTP」を使用する事を薦めます。
FFFTPはベクターや窓の杜からダウンロード出来ます。ちなみにフリーウェアです。
■2.サポートスクリプトの意味は?
あめぞう型掲示板を設置する前に、ちょっとサポートスクリプトの意味を理解しておきましょう。
1.amezo.cgi
これぞ最高傑作!!と言わんばかりのスクリプトです。
あめざーねっとII管理人の水谷わひょみ氏などはいつも
「サポスクは凄いっすよ!無駄がナニ一つ無いっすよ!感じるっすよ!!」
とリキ入れて言ってるくらいですから。※最後の一言は嘘ですので信じないように…
さて本題に移りまして、このCGIはあめぞう掲示板の心臓部です。
現時点でのバージョンでは以下の処理をこのスクリプトで行います。
・新規投稿スレッドの作成
・スレッドへのレス投稿
・index.htmlの生成
・リロード機能
・200レス以上ついたスレッドの最新レス100表示
シンプル且つ無駄が無いという所もありまして理解し易い反面、改造が場合によって困難になる時も
あったりします。
ま、これはどのスクリプトにも言えるのかもしれませんが、極限にまで無駄を無くした結果、
改造する余地を狭めている部分もあるという事です。
実際に各々で使用する際は、若干のスクリプト変更が必要になってきますがそれは後述します。
2.dai.cgi
各板のヘッドラインを表示するスクリプトです。板毎に最新レスの付いたスレッドトップ20を表示します。
表示した板名 及び スレッドタイトル はリンクされていますのでクリックすると開くようになってます。
このCGIも「流石だなあ〜」って思わせるテクが入ってますので、解析してみるのも良いでしょう。
ちなみにこのスクリプトを設置しなくても、掲示板だけの動作は可能です。
3.blist.txt
各板の情報が設定されているファイルです。
ファイルの中をエディタやメモ帳で覗いてみますと、以下のように記述があると思います。
main1,#dddddd,速報
main,#ddeedd,広場
main2,aquamarine,速報2
・
・
(以下、省略)
これらの情報の意味は以下のようになっています。
[URL上の板名称],[板の背景色],[板の日本語名称]
例を上げますと、blist.txtの2行目は、
URL上の板名称(ログが保管されるフォルダ名)は「main」で、背景色は「#ddeedd」色で、日本語名称は「広場」
という事になります。
各々で好きな板を設置する時は、上記の法則に従って内容を変更してもらえれば自由に板の設定が出来ます。
尚、「URL上の板名称」の先頭文字に「.(ピリオド)」を付けますと、ヘッドラインに表示されなくなります。
例)「 .test 」という板名称の時、ヘッドラインには表示されない
ちょっと秘密の板を用意したいという方は、この設定にしてもらえれば良いでしょう。
但し、blist.txtの中身を見えないようにしないと、結局バレてしまいますけどね。
それから「板の背景色」の後に続けて「!画像ファイルのパス」と記述しますと、板の背景に画像が表示されるように
なります。
例)「#fffff8!icho.gif」という板の背景色の時、「icho.gif」の画像が板の背景に表示される
4.header.html
掲示板のヘッダ部を生成する時に使用するhtmlです。
このhtmlの中を自由に設定する事により、オリジナリティのある掲示板が出来あがります…かな?
掲示板のリンク記述設定は、あめ系ではお決まりみたいになってます。
これも後述しますが、このheader.htmlは各板のindex.htmlの元にもなります。
5.ng.txt
NGワードが詰まっている情報ファイルです。
旧サポートスクリプト(注:あめぞう(仮)が2000年6月に一時閉鎖する前まで公開していたスクリプト)では未使用で、
現在公開中のスクリプトより使用しています。
中身はと言いますと…これが見れないんだな(笑)←パーミッションを落としてるから
ま、NGワードですからね。知られると困るような情報なんかも詰まってるかも知れませんし。
個人情報やら、卑猥な言葉やら…。そういった「掲示板上に書き込まれるとまずい」言葉をこのファイルに
事前に設定しておく事で、管理人さんも利用するお客も安心感を得る事が出来るかと。
実際の情報の定義方法は以下のように行います。
[NGワード],[オプション]
「NGワード」はそのままの意味です。「あはん」や「うふん」と言ったキーワードを設定します。
「オプション」へは「何も設定しない」か「-(マイナス)」を設定します。
オプションへ「-(マイナス)」を設定した場合は投稿者欄専用のNGワードの意味となり、
投稿者欄の内容とNGワードが一致しますと、リロード扱いになります。つまり投稿内容は無効となります。
※2003.12.01時点でのスクリプトでは以下のようになりました。
「オプション」へは「何も設定しない」か、半角の「n」「c」を設定します。
オプションへ「n」を設定した場合は投稿者欄専用のNGワードの意味となり、
投稿者欄の内容とNGワードが一致しますと、リロード扱いになります。つまり投稿内容は無効となります。
同様に、オプションへ「c」を設定した場合は投稿内容欄専用のNGワードの意味なり、一致すると
リロード扱いになります。
オプションへ何も設定しなかった場合は「とにかく共通のNGワード」の意味になります。
つまり、投稿者欄かメール欄か投稿内容欄 と NGワードが一致した部分についてはカットされて
スレッド作成 又は レスカキコ となります。
例)ng.txt に 以下の内容が設定されていた時、
えろえろ,
モナー,n
・投稿者欄が「オマエモナー」→投稿内容は無視される(=書き込まれない)
・投稿内容欄に「僕はえろえろ真っ裸だ」→「僕は真っ裸だ」に変換されて書き込まれる
と、なります。
■3.CGI設置可能な鯖&アカウントの取り方は?
とりあえず、無料鯖に限定して簡単な説明をします。
海外鯖でしたら「バーチャルアベニュー」がお勧めです。
・CGI処理速度が速い
・広告バナーをページ上の何処かに設置すればポップアップ広告は表示されない
・50MBと比較的大容量で利用出来る
という理由です。
しかし本来は「商用利用以外は不可」となっていますので、もし商用利用以外の使用がバレた場合、
即刻デリされます。又、容量が50MBを超過した場合、超過分を請求されますので注意が必要です。
そういった意味で紹介はさせてもらいましたが、胸を張ってのお勧めではありませんので
具体的なアカウント取得方法は伏せさせていただきます。
参考までに、フリメでの登録は殆ど不可能となってます。本メアドが無難です。
とゆー訳で、本来のお勧めはこちら。
国内鯖で有名な「isweb(旧:freeweb)」です。
違法性が無ければどんなサイトとしても利用可能です。商用利用も可能です。
CGI利用も当然OK。スペックもまあまあ良好です。
・CGI速度が(まあまあ)速い
・50MBと比較的大容量で利用出来る
強いて欠点を言いますと…広告バナー×2ケ & ポップアップうぜーー!!!!(笑)
あと、外部CGI呼び出しが不可となってますので、cgi-bin配下のURLへ直リンするとエラーになります。
ま、タダなんだし文句は言えませんが…。それでもなあ…って感じは確かにします。
ちなみにアカウントは簡単に取れます。登録フォーマットは日本語ですし。
ふつーに入力して登録して下さい。ウソはいけませんぜ!!(笑)
■4.スクリプトの設置方法は?
さて実際に垢を取りましたら、FTPで繋いでみましょう。
繋ぎましたら、以下の様にディレクトリを作成〜スクリプト設置します。
実際にはスクリプトの変更が必要ですので、まずはディレクトリの作成のみ行いましょう。
※()内の数字はパーミッションを表します
1.通常垢の場合(cgi設置場所に制限が無い垢の場合)
[public_html] (755)
├amezo.cgi (755)
├dai.cgi (755)
├jcode.pl (644)
├blist.txt (644)
├header.html (644)
├ng.txt (400)
├global.mem (600) ※このファイルは自動的に作成されます
│
├[main] (755)
│ ├index.html (644)
│ └index2.html (644)
│
├[main2] (755)
│ ・
│ ・
│ ・
└[sapo] (755)
2.iswebの場合([cgi-bin]の配下にcgiを設置する垢の場合)
[public_html] (755)
└[cgi-bin] (755)
├amezo.cgi (755)
├dai.cgi (755)
├jcode.pl (644)
├blist.txt (644)
├header.html (644)
├ng.txt (400)
├global.mem (600) ※このファイルは自動的に作成されます
│
├[main] (755)
│ ├index.html (644)
│ └index2.html (644)
│
├[main2] (755)
│ ・
│ ・
│ ・
└[sapo] (755)
3.WebARENAの場合
[public_html] (755)
├[cgi-bin] (755)
│ ├amezo.cgi (755)
│ ├dai.cgi (755)
│ ├jcode.pl (644)
│ ├blist.txt (644)
│ ├header.html (644)
│ ├ng.txt (400)
│ └global.mem (600) ※このファイルは自動的に作成されます
│
└[home] (755)
├[main] (755)
│ ├index.html (644)
│ └index2.html (644)
│
├[main2] (755)
│ ・
│ ・
│ ・
└[sapo] (755)
■5.さて、スクリプトの変更&下準備です!
さあいよいよ本題に入ってきました。
ここから実際にスクリプトの変更と下準備をする事になります。
どの垢へ設置するにあたってもここに書かれている事は必要となりますので、必ず一読して下さい。
まずは「とりあえず動く!」という所までの最低限の説明だけ記します。
あ、ちなみに変更するのに使うエディタは何でもOKです。
メモ帳でも構いませんので、以下のスクリプトを開いて変更していきましょう。
注)以下のスクリプト変更の説明は2003.12.01現在のものを基準にしています。
スクリプトのバージョンによっては若干異なる場合がありますので御了承下さい。
1.amezo.cgiの変更
(1)まず1行目。Perlが設置されている場所のパス記述です。
#!/usr/bin/perl
と記述している部分を、設置先の鯖に併せて変更します。
設置先の鯖により記述内容は異なりますが、場合によってはこのままでもOKの所もあります。
比較的多いのは、
#!/usr/bin/perl … さくらインターネット 等
#!/usr/local/bin/perl … isweb、mixedmedia、WebARENA 等
のどちらかといった所でしょうか。
「どのよーに記述していいのか解らない!」って方は、垢を取得したサイトを見ますと
大抵は説明がありますので解ると思います。
(2)14行目。掲示板のURLです。
$urlbase = 'http://ame.x0.com/';
と記述している「http://ame.x0.com/」の部分を、自分の掲示板URLパスに変更します。
例えば、掲示板のURLが「http://hogehoge.jp/bbs/」だとしますと
$urlbase = 'http://hogehoge.jp/bbs/';
と記述する事になります。
iswebに設置した場合なら
$urlbase = 'http://hogehoge.infoseek.co.jp/cgi-bin/bbs/';
って感じでしょうか。
amezo.cgiの変更については、これでおしまいです。
2.header.htmlの変更
設置する垢によりますが、殆どの場合header.htmlについては変更する必要はありません。
掲示板の板を設定したパスと、amezo.cgiスクリプトを設定したパスが異なる場合は
以下の変更が必要です。
(1)292行目。amezo.cgiスクリプトのパスです。
form method=post action="../amezo.cgi"
に記述されている「../amezo.cgi」の部分を変更して下さい。
3.ng.txtの作成
エディタでもメモ帳でも構いませんから、「ng.txt」という名前のファイルを作成します。
ファイルの中身はカラッポで結構です。
4.index.html、index2.htmlの作成
「header.html」をコピーして、「index.html」と「index2.html」のファイルを作成します。
ファイルの中身は変更する必要はありません。
以上で、スクリプトの変更と下準備は終了です。
あれ…?これだけ?!
そう、「とりあえず動けばいい!」という状態であれば、これだけの変更でOKなのです。
これだけだったら、簡単ですよね?
さあ、いよいよ次から具体的な掲示板設置作業に入ります。
■6.設置しちゃいましょう!
さあ一気に行きましょう!!
もう既に、垢の下へフォルダは作ってますよね?
まだの方は『■4.スクリプトの設置方法は?』を参考に、フォルダを作りましょう。
解らない方は、とりあえず「main」という名前のフォルダだけ作って下さい。
以下の説明も、mainというフォルダ(板)を設置する場合について記載します。
板やスクリプトのパーミッション指定も忘れずに!
『■4.スクリプトの設置方法は?』を参考にしながら、
1.サポートスクリプトの設置
「amezo.cgi」「jcode.pl」「blist.txt」「header.html」「ng.txt」を設置します。
2.掲示板の初期設定
「main」フォルダの下へ、「index.html」「index2.html」を設置します。
さあて、いよいよ…。
■7.そろそろ動くよ?
さて…。
待ちに待った瞬間がやってまいりました!! 大袈裟過ぎですな
掲示板URLへブラウザよりアクセスしてみましょう。
例えば、掲示板URLが「http://hogehoge.jp/bbs/」でしたら、
http://hogehoge.jp/bbs/main/
へアクセスします。
すると…
こんな画面が出てきましたか?
出て来なかった場合は、index.htmlの設置が出来ていないか、掲示板URLが間違っていますので
見直してみて下さい。
さて、画面が出てきた方は、一番下の方にあります
ボタンだけをポチッとクリックして下さい。
背景色が#ddeeddに書き換わって、板のタイトルが「広場@あめぞう(メイン) 」になりましたか?!
書き換わった貴方、おめでとうございます!!
貴方はこれで、この掲示板を使いたい放題です。
一国の主です。
どうぞお好きなようにスレッドを立てて堪能して下さい。
うまく書き換わらなかった方、今までの流れを見直してやり直してみて下さい。
今までの工程を順序通りに行えば、きっと多分恐らく上手く行くと思います。
諦めずに頑張ってみて下さい。
それでは、良い『あめぞうライフ』を!!
(〜第一部完〜 反響があったら更新するかも)
2004.12.28 追記
global.memについて
isweb鯖にてサポスクを設置すると、globalmem内が丸見えになります。
(isweb鯖以外でも、アクセス可能であって何も対処していなければ丸見えになりますが)
丸見えになるとどーなるかとゆーと…最後にスレッド立てた人のIPが解ってしまいます(笑)
「こんなのいやじゃー!」という方は、以下の何れかの対処方法を行って下さい。
<対処方法1>
・スレッド立てた後に、global.memのパーミッションを手動で「600」に変更(1回だけ変更すればOK)
<対処方法2>
・amezo.cgiの最後尾にある処理へ以下の赤色の文法を追加
for (keys %iplist){
print Z "$_ $iplist{$_}\n";
}
close(Z);
chmod 0600,"global.mem";
}
「後述する点を除いて自由」の表記について
「但し、第三者が使用するにあたっては制限を特に付けないとの事ですので
後述する点を除いて自由という事になります。」
と書きましたが、これは何の事かと言いますと、具体的には「Copyrightを改変しない事」を指します。
つまり、
<!--
Script for amezo-like BBS
Copyright (C) 1999-2002 amezo_
http://ame.x0.com/
-->
の部分を上書き変更しない事という意味です。
但し、何らかの独自アレンジにてスクリプト変更した場合は、追記だけなら良いと思います。
これは礼儀として捉えてください。