簡単Web拍手CGI設置講座 -Web拍手設置への序章-
巷でWeb拍手サーバーの移転によりデータが飛んだと嘆いております方へ
Web拍手のCGI設置したいけど知識が全くないから分かんないよ・・・という方へ
CGI設置方法を詳しく書いてみました
Readmeを読んでも分からない人は是非どうぞ(間違いあっても泣かない!!)
とりあえずReadmeを更に解説するという形で、自分のアカウントととも照らしつつ説明します
なお使用しているWeb拍手はだんでぃ様のCGIを利用させていただいております
○目次
・構成ファイルの確認
web拍手CGIは以下のファイルから成り立っています。
足りないファイルが無いかどうかご確認ください。
| ファイル名 | 説明 | 操作の有無 |
| clap.cgi | 拍手送信CGI | 有 |
| kaiseki.cgi | 解析表示CGI | 有 |
| clapinit.cgi | 基本設定、主要サブルーチン | 有 |
| jcode.pl | 歌代和正氏作のライブラリです | 無 |
| log.dat | ログファイル | 無 |
| mes.dat | 一言メッセージ保存ファイル | 無 |
| lock.dat | ファイルロック用ファイル | 無 |
| graph1.gif | 解析用横グラフ | 無 |
| graph2.gif | 解析用縦グラフ | 無 |
| readme.txt | 今読んでいるこのファイル | 無 |
基本的にDLして解凍した中に全てあるはずです。もし何かない、または壊れてる場合は再度DLしてください
・perlパスの変更
「 clap.cgi 」と「 kaiseki.cgi 」をテキストエディタで開き、1行目の
#!/usr/bin/perl
を、このcgiを設置するサーバーに合わせたパスに変更してください。
「 clap.cgi 」、「 kaiseki.cgi 」はnotepadで開けます
開くとどちらも最上部が
| #!/usr/bin/perl ######################################### # # web拍手解析CGI # # 作・だんでぃ # ######################################### |
このようになっているはずです。一番上の「#!/usr/bin/perl」を変える必要があります
例えばinfoseekであれば「#!/usr/local/bin/perl」となります
使用しているサーバーのHPにCGI設定について(infoseekならばここ)の説明があるはずです

そこで「Perlのパス」を探して変更しましょう
・基本設定の変更
clapinit.cgiをテキストエディタで開き、
必要に応じて設定を変更してください。
拍手送信後画面用メッセージは、
拍手が送られたときにランダムで表示される
送ってくれた方へのお礼のメッセージです。
※基本的には何も設定を変更しなくても
パスの変更だけされていれば正常に動作します。
clapinit.cgiの詳しい説明はこちら
説明にはありませんがCGIのアップロード場所についてです
Perlパスと同様に使用しているサーバーのCGI説明の場所に

cgi実行ディレクトリ名とありますディレクトリとはフォルダの事と思えば良いです
この場合「cgi-bin」というフォルダを作り、そのフォルダ内に必要なファイルをアップロードします
readme.txt以外をアップしますがreadme.txtがあっても困るわけではないので全部アップしても構いません
・パーミッションの設定
サーバーにreadme.txt以外のファイルをアップロードしたら、
各ファイルのパーミッションを以下のように変更してください。
clap.cgi [755]
kaiseki.cgi [755]
clapinit.cgi [644]
jcode.pl [644]
log.dat [666]
mes.dat [666]
lock.dat [777]
graph1.gif 設定の必要はありません
graph2.gif 設定の必要はありません
パーミッションとはファイルへのアクセス権の事です。数字を気にする事はないのでそのまま変更しましょう
FFFTPですとアップロードしたファイルに右クリックして「属性変更」を選ぶと

こんな感じで出てきますので現在の属性の所をreadmeの通りに変えてください
・拍手ボタンの設置方法
拍手を送信するためにはclap.cgiを呼び出すだけでOKです。
ボタンの形で設置したいということであれば、
<form action=『clap.cgiのパス』 method=post target=_blank>
<input type=submit value=web拍手ボタン>
</form>
のタグを使用すれば一般的なweb拍手ボタンになります。
(当然ですが、『clap.cgiのパス』の部分は任意のパスに書き換えてください。)
特に<form>タグを使用しなくても、
<a>タグ等でclap.cgiを呼び出してあげれば拍手は送れます。
これはWeb拍手を送信するhtmlファイルでの操作内容です
formタグで作ったものは↓のようになります
clap.cgiのパスとはclap.cgiを置いている場所の事で、僕の場合ですと
http://nyaco.hp.infoseek.co.jp/cgi-bin/clap.cgi
となります
フォームにしない(ボタンにはしない)場合は文字にそのままリンクをつけるだけでいいです
■Web拍手(タグ:<A href="http://nyaco.hp.infoseek.co.jp/cgi-bin/clap.cgi">■Web拍手</A>)
入力欄込みの拍手はこんな感じになります
タグ
<FORM action="http://nyaco.hp.infoseek.co.jp/cgi-bin/clap.cgi"
method="post" target="_blank">
<INPUT type="submit" value="送信"><INPUT type="hidden"
name="kaisuu" value="2">
<INPUT type="text" name="hitokoto" size="50"
maxlength="50">
基本的に変更位置は「'0'」のような「''」で囲まれた部分となります
# 解析にパスワード認証を
# 0…かけない
# 1…かける
$passlock = '0';
# 解析閲覧用パスワード(パスワード認証をかけない場合は不要)
$password = '0000';
パスワードをかける場合は0を1にして'0000'を自分の好きなように変更します
# 拍手送信後画面用お礼メッセージ1(タグ使用可)
$message[0]='拍手ありがとう〜ヽ(*´▽`)ノ';
# 拍手送信後画面用お礼メッセージ2(タグ使用可)
$message[1]="もしもし、こちら猫々相談室です('-'*)Dご用件をどうぞ♪";
# 拍手送信後画面用お礼メッセージ3(タグ使用可)
$message[2]='(* ・`д・´)b GoodClap♪';
# 拍手送信後画面用お礼メッセージ4(タグ使用可)
$message[3]='にゃんにゃん♪ヽ(*´▽`*)ノにゃんにゃん♪';
# 拍手送信後画面用お礼メッセージ5(タグ使用可)
$message[4]='(* ・`д・´)b GoodClap';
上記のように5つ作った文章がランダムでどれか表示されます
同じく「 '' 」の中身を変更しましょう
# ログファイル
$logfile = './log2.dat';
# 一言メッセージ保存ファイル
$mesfile = './mes.dat';
特に変更する必要はないはずです「./」とは現在の自分の位置を示すパスです
# ファイルロックを
# 0…しない
# 1…する
# かなりの数の拍手が送られてくると思われる場合は1にしてください。
# ファイルロックにはflock関数を使用します。サーバーのOSの対応状況をご確認ください
$lock = '0';
# ロックファイル名(ファイルロックをしない場合は不要)
$lockfile = 'lock.dat';
自分も使用した事はないのですが特にいじる必要はないんじゃないかと
# グラフURL(サーバーによっては絶対パス)
# cgiフォルダに画像が置けないサーバーもあるので注意してください
$graph1 = './graph1.gif'; #横
$graph2 = './graph2.gif'; #縦
サーバーに問題なければパスを変更する必要は特にありません
CGIフォルダに画像が置けない場合は適当な場所(例えば最上部)に置いて
$graph1 = 'http://nyaco.hp.infoseek.co.jp/graph1.gif';
という感じにすればいいです
グラフに使用するファイルは横は「
」縦は「
」のファイルで構成されています
グラフの画像をいじりたい場合、縦なら
←このファイルをgraph2.gifと名前を変えて上書きすれば

こんな感じになります。画像はよく考えて選びましょう![]()
gifファイルがいくつも並ぶのではなく拡大されて表示されるのでそこだけは注意です
#ちなみにこれはDQ好きMAルームのMAさんがよく使うファイルです
これ以下の(clapinit.cgi内の)部分をいじるとプログラムが正常に動かなくなる可能性がありますので
プログラムを自身で動かせる人以外は触らないようにしましょう
一度聞かれたので簡単に説明を (なお作業中重かったのでFLASHは一時的に消しております)
clapinit.cgiにあったメッセージを5つ入れる所でタグを打つというのが一番簡単な手です
それ以外にWeb拍手の送信完了ページをいじりたい場合はclap.cgiを開き
#-----------------------------------HTML表示
$title = "web拍手送信完了";
&header;
print "<body>\n";
という部分を探してください。ここがHTML表示をperlで書いたものです
僕の場合この部分を
#-----------------------------------HTML表示
$title = "拍手ありがとう〜ヽ(*´▽`)ノ";
&header;
print "<body>\n";
print '<HR>';
print '<DIV align=center>';
print '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
width="400" height="300" id="fi1" align="center">';(←長いので改行してますが本当は改行ないです)
print '<PARAM name="movie" value="http://nyaco.hp.infoseek.co.jp/clap.swf">';
print '<PARAM name="loop" value="fales">';
print '<PARAM name="quality" value="high">';
print '<PARAM name="bgcolor" value="#FFFFFF">';
print '</OBJECT>';
print '</DIV>';
print '<br>';
と変えています。FLASHタグのためタグが長くなってますが基本は簡単です
「print '???'; 」の???の部分がタグになっています。ここにタグを入れればいいだけです
見易さを考えないなら「'print';」を1個だけ書いて全部その中にタグを詰め込むこともできます
最後の「;」を忘れてもプログラムは動かないので注意しましょう
ちなみに$titleの所にはHTMLページのようにタイトルを入れればいいだけです
Qメッセージの種類を増やすにはどうすればいいの?
同じくclap.cgiの中に
#------メッセージ
$i = int(rand(5));
print "<center>\n";
print "$message[$i]<br><br><br>\n";
こういう部分があります。int(rand(5));の5の部分をメッセージの種類だけ増やし(8種ならint(rand(8)) )
clapinit.cgiの
# 拍手送信後画面用お礼メッセージ5(タグ使用可)
$message[4]='拍手が送信されました。<br>ありがとうございました!';
をコピぺして(2行目だけでも良い)、$message[4]の4の部分を1ずつ加算していけば良いです
4の部分はメッセージ番号と違い0から始まっているのでメッセージ5の場合は5-1=4となります
$message[5]='メッセージ6だよ〜';
$message[6]='メッセージ7なのだ〜';
$message[7]='メッセージ8は私です';
↑こんな感じ
感想/質問/ミス指摘等ありましたら、こちらから送信してください
返信は日記内及びここへの追記で致します