実際の設置例3(上級コース)

G-Lightの巻

前へ 次へ トップに戻る

さらに、@nifty独特の仕様に真っ向勝負してみましょう

お題としては、@homepage独特の仕様に引っ掛かり易いモノということで、KENT WEBさんから、アイコン式で過去ログ機能もあって高機能なゲストブック「G-LIGHT」を拝借してみます。

実は、この「G-Light」の設置法で、「YY-Board」「Web Forum」などなど、KENT WEBで人気の掲示板は、ほとんど同じ考え方でいけるのです。

また、当然ですが、このページはCGI作者の設置法のページではありませんので、このページの内容だけでCGIの設置はできません。
まずは、CGI作者の利用規定のページをよく読み同意した上で、CGI作者の設置法のページを主として、このページは参考程度でご覧下さい。

まず、2つの圧縮ファイルを解凍して出てきた各ファイルの置き場所を考えましょう

glight.lzh(zip)の中身
glight.cgi CGI本体です。当然、/cgi-bin/の下に置かなければ実行できません。
glight.log 現行のログが書き出されるファイルです。CGIからしか見にいきませんので、CGIと同じ場所でいいでしょう。
jcode.pl 日本語変換ライブラリだそうです。CGIと同じ場所に置きましょう。書き換えてはいけません。また、他のサイトから手に入れた同名ファイルでも、共用で特に問題無く使えるようです。
pastno.dat 過去ログファイルが、現在いくつになってるかが記録されるファイルです。CGIと同じ場所でOKです。ただ、他にも同名のファイルを使用する掲示板を設置している場合は、リネームが必要でしょう。
count.dat ミニカウンタのカウント数です。CGIと同じ場所でOK。こちらも、必要に応じてリネームが必要。
1.html 問題の、過去ログが書き込まれるファイルです。cgi-binの下に置くとブラウザでは表示できないので、/homepage/の下、任意のディレクトリに置きましょう。(実はCGIと同じ場所に置いても、書き込みだけは可能なのですが・・・(以下略))
home.gif 次のアイコン画像群と同じ場所に置きます。
mayu_icon.lzh(zip)の中身
admin1.gif
admin2.gif
  :
他・全15file
これらのアイコン画像を見に行くのはブラウザなので、/cgi-bin/の下に置いても表示できません。/homepage/下の任意のディレクトリに置きましょう。

ということで設置イメージです。本家の案内と比べて、一段、面倒になります

ROOT /  cgi-bin / glight.cgi [755]
 |                     glight.log [666]
 |                     jcode.pl   [644]
 |                     count.dat  [666]
 |                     pastno.dat [666]
 |
 +-- /  homepage / index.html(トップページ)
        |
        +--/ glight / 1.html [666] ... (過去ログ用)
                         home.gif
                         admin1.gif ... (アイコン画像)
                         admin2.gif
                             :

/homepage/配下の/glight/というディレクトリ名は任意です。
過去ログと画像ファイルは別ディレクトリでも構いませんが、実際の設置場所と、この下で設定する内容が一致するように、注意深く作業しましょう。

それでは、glight.cgi をエディタで開いて、修正開始です。

#!/usr/local/bin/perl

CGIスクリプトを手に入れたら、まず最初に必ずこの1行目をチェックする習慣をつけましょう。同じ作者、同じスクリプトでも、バージョンによってここのデフォルト値が違うなどはよくあることです。
ちなみに、ここが間違ってると、必ず「サーバーエラー」が出ます。

# 管理用パスワード
$pass = '0123';

テスト設置でも、ここは最初から書き換えておくことをお奨めします。
テスト運用からそのまま書き換え忘れて本稼動・・・なあんて、ありがちですよね。いたずらされてからでは後の祭です。

# ファイルロック処理 (0=no 1=symlink 2=open)
$lockkey = 1;

@niftyではsymlink関数が使えるようですので"1"でいいでしょう。

# 自動メール通知の有無 (0=no 1=yes)
$mailing = 0;

@niftyでは、sendmailは使えませんので、サーバーに余計な負担をかけない意味でも、ここは必ず"0"

## ---- <過去ログ> -------------------- #

# 過去ログ機能 (0=no 1=yes)
$pastkey = 1;

もちろん本稼動時にこの過去ログ機能を使うかどうかは各自の自由ですが、実際に掲示板が稼働して、貴重なログが溜まってからこの機能を使おうとして失敗すると、書込み不能になったり、貴重なログが消えていったりしますので、テスト設置時に、一度は書込み/表示が出来るかのテストをしておくことをお薦めします。

# 過去ログディレクトリ (フルパスだと / から)
$past_dir = "/homepage/glight";

出ました、@nifty対応の最重要項目!
ここでは"1.html"の置き場所を指定するわけですが、後からブラウザで見に行くことになるので/homepage/配下にしか置けませんが、ここで指定しているのはCGIが書き込みに行く時なので、"http://"からのURL指定ではCGIが書き込みに行けないのです。
必ず、絶対パス(またはglight.cgiからの相対パスだと"../homepage/glight")で指定しましょう。("glight"部分は任意です)

# 過去ログディレクトリのURL (絶対パスだと http:// から)
$past_url = "http://homepage?.nifty.com/****/glight";

こちらも、@nifty対応の最重要項目!
同じく"1.html"の置き場所を指定するわけですが、こちらはブラウザが表示しに行く時の指定なので、必ず、"http://"からのURL指定じゃないと、ブラウザが表示できません。

## --- <画像関連> --------------------- #

# キャラクタGIF画像のディレクトリを指定
$img_url = "http://homepage?.nifty.com/****/glight";

またまた、@nifty対応の最重要項目!
「ディレクトリを指定」とありますが、これも"http://"からのURLで指定しましょう。
?」にはあなたのサーバー番号、「****」にはあなたのアカウント名、「glight」部分はあなたの置き場所により任意です。

以上、とりあえず必要最低限の項目のみ挙げましたが、@nifty独特の制約により、デフォルト設定では引っ掛かる部分が多いことがわかるでしょう。

あと、インデックスページなどにCGIへのリンクを作っておくか、「お気に入り」に登録しておくと、テストが楽になるでしょう。

では、FTP転送して、パーミッションの設定です

まあ、こんな感じで・・・"*.gif"と、ディレクトリのパーミッションについては、特に気にする必要はないでしょう。

  転送モード 推奨 表示例
*.cgi テキスト 755 rwxr-xr-x
*.pl テキスト 644 rw-r--r--
*.dat/*.log テキスト 666 rw-rw-rw-
*.html テキスト 666 rw-rw-rw-
*.gif バイナリ    

なお、@homepageでは、特に指定せずに新規に作成されたままのディレクトリは[755]、普通に転送しただけのファイルは[644]と、自動的にパーミッションが設定されるようです。

さあ、いよいよURLでCGIを呼び出してみましょう

http://hpcgi?.nifty.com/****/glight.cgi

さて、うまくいったでしょうか?

試しに書き込んでみて、選択したキャラや家アイコンがうまく表示されるかどうかを確認。

次に、今度は管理モードに入って、[最大記事数]を少ない数に変更して、いくつかテスト投稿してみて、過去ログが無事生成/表示されるか確認してみましょう。

テストから本稼働へ

さて、すべてOKだったら本稼働ですが、テストで投稿した内容はどうしましょう?

これは簡単で、パソコン上にある glight.logpastno.datcount.dat1.htmlの各種ログをもう一度上書きでアップロードすれば、掲示板を初期状態に戻すことができます。
あと、過去ログのテストを入念にやって、2.html3.htmlなどが出来ていたら、これらはFTPソフトで削除しておかないと、遠い将来、これら過去ログが登場した時に、「なんだこの書込み」ってことが起こるでしょう(笑)。

 

いちおう、設置例はこちら・・・あ、ついでだからなんか書き込んでってちょ(笑)
(ちなみに既に上記設定例より、より複雑な構成になってたりします)

え?うまくいかない?

うーーむむ・・・なんか、エラーメッセージが出た人は次のページへどうぞ〜


このページで紹介したCGIのあるサイトです

KENT WEB


前へ 次へ トップに戻る

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル