▲戻る 

我楽多 cgi @nifty 
CGI設置に関するFAQのぺぇじ
※このページの最終更新日:2002/01/12


yy-niftyに関するFAQ
001:CGI実行エラーになります。
002:掲示板が動きません。(Can't create tempfile)
003:書きこみすると実行エラーになります。
004:ある日突然新規投稿が出来なくなりました。
005:過去ログ機能がエラーになります。(Can't write ./yy-nifty/1.dat)
006:アイコンが登録できません。
007:アイコンが表示されません。
008:ミニカウンタがリセットされてしまいます。
009:新しいバージョンに移行する方法は?
010:nifty以外でも設置できますか?


001:CGI実行エラーになります。

yy-niftyは、配付アーカイブをダウンロードしたそのままの状態でもとりあえず動くように作ってます。
まずは、設定を何も変更しないで設置して見てください。
何も変更してないのにエラーになる場合は、CGI設置手順に問題があります。
CGIを呼び出すとエラーが表示される原因は主に以下の理由が考えられます。

1.スクリプトソースをテキスト形式で保存していない。(ワープロソフトやHTMLエディタを使ってはいけません)
2.FTP転送モードがASCIIではない。 (特に、MacでFetchを使ってる方はドラッグ&ドロップしないでテキストで転送して下さい)
3.パーミッションの設定を間違えてる。(パーミッションについて詳しい事は
こちらをご覧下さい)
4.jcode.plのパス指定ミス又は転送漏れ。
5.CGIの設置URLの指定ミス。

初心者の方は「
CGI設置初級講座」の練習用CGIを使ってCGI設置の正しい手順を確認して下さい。

002:掲示板が動きません。(Can't create tempfile)

掲示板を呼び出すと「Can't create tempfile」というエラーが出る。

これは、yy-nifty.cgiを設置しているディレクトリのパーミッションが正しくない事が原因です。
yy-nifty.cgiが設置されているディレクトリ(設置説明では/cgi-bin/yy-nifty/)のパーミッションを777に変更して下さい。

nifty以外のプロパイダによっては、700や701でなければダメな場合もありますので自分のプロパイダの
CGI設置の注意書きやFAQを良く確認して下さい。

※パーミッションの意味や変更方法がわからない方は、「CGI設置初級講座」をご覧下さい。。

003:書きこみすると実行エラーになります。

掲示板は表示されるが、記事を投稿するとCGI実行エラーが出来ます。

これは、@はぁと変換の変換キーワードに長音記号「ー」が使われているのが原因です。
長音記号「ー」を使わないキーワードに変更して下さい。

@はぁと変換キーワードの設定
 # イメージに変換する文字列
 @chg_msg = ('@はぁと','@xx1','@xx2','@xx3','@xx4','@xx5');

 ※上記の設定で「@はーと」や「@めーる」の様にキーワードに「ー」を使用するとエラーが発生します。

004:ある日突然新規投稿が出来なくなりました。(Can't write ./yy-nifty/1.dat)

ある日突然、新規投稿をすると「Can't write ./yy-nifty/1.dat」エラーが出るようになりました。

これは、過去ログ機能を使用している場合に発生することがあります。
原因は、最大記事保存数を超えた記事を過去ログに保存しようとして失敗した為です。

yy-nifty Ver2.xの場合
大抵のケースでは、過去ログ用ディレクトリ「$pastdir」の設定ミスです。
niftyではHTMLファイルをCGIと同じ場所に置けないので、$pastdirの初期値を「$pastdir = "/homepage/yy-nifty"; 」としてます。
nifty以外のプロパイダに設置されてる場合、この部分の変更ミスが良くあるようです。
過去ログ用ファイル(1.html)が設置されている場所(パス)を$pastdirに正しく設定して下さい。
CGIの設置場所に制限の無いサーバーでは「
$pastdir = "."; 」と指定してyy-niftyと同じ場所に過去ログを作るのが簡単です。

yy-nifty Ver3.x以降の場合
大抵のケースは、1.datの転送漏れ 又は pastno.datの中身に問題があります。
詳しい原因を調べる為には、
yy-niftyをチェックモードで呼び出します。
チェックモード>
http://hpcgi.nifty.com/■■■■■■/yy-nifty/yy-nifty.cgi?mode=check
               ↑
          ※
■■■■■■の部分は、自分のニフティのHPアドレスに読み替えて下さい。
チェックモードで呼び出すと以下の様な画面が表示されます。
Check Mode

※チェックモードのステータスが全てOKなのにエラーが出る場合は、pastno.datの中身に問題があります。
  pastno.datの正しい中身は、過去ログファイルの数を表す数字だけが保存されてます。
  初期値では「1」の1バイトのみです。 余分な空白や改行コードがあるとエラーの原因になります。

005:過去ログ機能がエラーになります。(Can't write ./yy-nifty/1.dat)

これは、過去ログ機能の設定が不完全な為に発生するケースが多いようです。

yy-nifty Ver2.xの場合
大抵のケースでは、過去ログ用ディレクトリ「$pastdir」の設定ミスです。
niftyではHTMLファイルをCGIと同じ場所に置けないので、$pastdirの初期値を「$pastdir = "/homepage/yy-nifty"; 」としてます。
nifty以外のプロパイダに設置されてる場合、この部分の変更ミスが良くあるようです。
過去ログ用ファイル(1.html)が設置されている場所(パス)を$pastdirに正しく設定して下さい。
CGIの設置場所に制限の無いサーバーでは「
$pastdir = "."; 」と指定してyy-niftyと同じ場所に過去ログを作るのが簡単です。

yy-nifty Ver3.x以降の場合
大抵のケースは、1.datの転送漏れ 又は pastno.datの中身に問題があります。
詳しい原因を調べる為には、
yy-niftyをチェックモードで呼び出します。
チェックモード>
http://hpcgi.nifty.com/■■■■■■/yy-nifty/yy-nifty.cgi?mode=check
               ↑
          ※
■■■■■■の部分は、自分のニフティのHPアドレスに読み替えて下さい。
チェックモードで呼び出すと以下の様な画面が表示されます。
Check Mode

※チェックモードのステータスが全てOKなのにエラーが出る場合は、pastno.datの中身に問題があります。
  pastno.datの正しい中身は、過去ログファイルの数を表す数字だけが保存されてます。
  初期値では「1」の1バイトのみです。 余分な空白や改行コードがあるとエラーの原因になります。

006:アイコンが登録できません。

■アイコン登録画面に「エラー '/homepage/yy-nifty/icon'が見つかりません。」と表示される。
これは、pup.cgiの$IconPathの設定が正しくない為に発生するエラーです。
#--画像保存場所(Pathで指定してください。)
$IconPath = "/homepage/yy-nifty/icon";

niftyでは上記の初期設定で通常は問題無いのですが、他のプロパイダに設置する場合は、
自分のホームディレクトリのパスに合わせて上記の設定を変更する必要があります。
ちなみにFreeWebやトクトクの様にCGIファイルの設置場所に制限の無いサーバーでは画像
ファイルをCGIと同じ場所に置けますので下記の様に相対パスで指定することも出来ます。

Root/
 |
 +--yy-nifty/ …(1)
   | yy-nifty.cgi
   |
   +--icon/ …(2)

(1)のディレクトリにアイコン画像ファイルを置く場合:
$IconPath = ".";
(2)のディレクトリにアイコン画像ファイルを置く場合:
$IconPath = "./icon";

■アイコン登録で「エラー 画像登録に失敗しました。原因:permission denied 」と表示される。
これは、pup.cgiの$IconPathで指定したディレクトリのパーミッションが777ではない時に発生します。
nifty以外のプロパイダによっては、700や701でなければダメな場合もありますので自分のプロパイダ
のCGI設置の注意書きやFAQを良く確認して下さい。

007:アイコンが表示されません。

■初期アイコン画像が表示されない。
 初期アイコン画像をFTP転送するディレクトリの間違い(又は転送モレ)を確認して下さい。
 初期アイコンの設定でアイコン画像ファイル名を間違えて記述していないか確認して下さい。
 #画像のファイル名
 @icon1 = ('0.gif','inu.gif','saru.gif','kiji.gif','usagi.gif');
 #画像の名前
 @icon2 = ('アイコン無し','イヌ','サル','キジ','ウサギ');

■アイコンは登録できるがちゃんと表示されない
yy-nifty.cgiとpup.cgiの$icon_url$IconPathの設定ミスに原因があります。
$icon_url$IconPathの設定は、yy-nifty.cgiとpup.cgiの両方を同じ設定にして下さい。
# アイコン画像のあるURLの指定
$icon_url = "http://homepage▲.nifty.com/■■■■■■/yy-nifty/icon";

# アイコンを登録するパスの指定
$IconPath = "/homepage/yy-nifty/icon";

■初期アイコンは表示されるのに、登録したアイコンが表示されない。
 これは、pup.cgiの設定に問題があります。
 pup.cgiの$icon_url$IconPathの設定内容をyy-nifty.cgiと同じ設定にして下さい。

008:ミニカウンタがリセットされてしまいます。

これは、同時アクセスによるカウンタログの破損が原因です。
掲示板のミニカウンタは、閲覧されるたびに更新されるので、同時アクセスによる更新で破損する場合があります。
これを防止するにはファイルロック機能をONにします。
ファイルロックには、symlink関数とopen関数の2種類がありますが、symlink関数の方が強固と言われてます。
niftyのCGIサーバーはsymlink関数が使えますので以下の設定のようにsymlink関数を選択して下さい。
# ファイルロック形式
# --> 0=no 1=symlink関数 2=open関数
# --> 1 or 2 を設定する場合は、ロックファイルを生成するディレクトリ
# のパーミッションは 777 に設定する。
$lockkey =
1;

009:新しいバージョンに移行する方法は?

yy-niftyを新しいバージョンにする手順は?

基本的にyy-nifty.cgipup.cgiを新しいバージョンに入れ替えるだけです。
yy-nifty.logやiconfile.log、count.dat、pastno.dat、1.dat等のデータファイルはそのまま残して下さい。

yy-nifty.log … 掲示板のログが記録されてます。
iconfile.log … 登録アイコンのログはに記録されています。
count.dat  … ミニカウンタの値が記録されてます。
pastno.dat  … 過去ログの保存ファイル数が記録されてます。
1.dat    … 過去ログ本体が記録されてます。(Ver2.x以前は1.htmlです)
※ご注意:これらのファイルを誤って上書きするとアイコンや記事が消えてしまいます。

yy-nifty Ver1.xから移行 … 現行ログに互換性がありません。ログ移行ツールを使用して下さい。
yy-nifty Ver2.xから移行 … 過去ログに互換性がありません。設置説明書の
過去ログ移行方法をご覧下さい。
yy-nifty Ver3.xから移行 … 互換性に問題はありません。

010: nifty 以外でも設置できますか?

結論:CGIを許可しているプロパイダであれば大抵設置出来ます。

いままで設置された実績としては、Biglobe、infoseekisweb、interq、cside、sakura、hi-ho等があります。
以下にinfoseekiswebでの
yy-nifty 設置事例を掲載します。
biglobeのCGI設置は画像ファイル等をCGIと同じ場所に置けない所がニフティとよく似てます。
infoseekiswebではアイコン画像をcgiと同じフォルダに入れても動作します。
以下にinfoseekiswebでの設置事例を紹介します。
手順1:yy-nifty.cgiとpup.cgiの$icon_urlと$IconPathの設定を次の様にして下さい。
# アイコン画像のあるURLの指定
$icon_url = "./icon";

# アイコンを登録するパスの指定
$IconPath = "./icon";

手順2:各ファイルをFTPでサーバーに転送します。
設置方法はニフティより簡単だと思います。サンプルとして以下に各ファイルの配置図を示します。
infoseekiswebにCGIを設置する場合は、cgi-binという名前のフォルダを作成してください。

Root/
 |
 +--cgi-bin/
    |
    +--yy-nifty/
[777]
       | 
yy-nifty.cgi [755]
       | 
yy-nifty.log [666]
       | 
pup.cgi   [755]
       | 
iconfile.log [666]
       | 
jcode.pl   [644]
       | 
count.dat  [666] ※ミニカウンタ使用時に必要
       | 
pastno.dat  [666] ※過去ログ機能使用時に必要
       | 
1.dat    [666] ※過去ログ機能使用時に必要
       |
       +--icon/
[777]
          
0.gif
          
home.gif
          
heart.gif


手順3:実際にCGIを呼び出すURLは、以下のようになります。
http://isweb?.infoseek.co.jp/<カテゴリ>/<ユーザー名>/cgi-bin/yy-nifty/yy-nifty.cgi
infoseekiswebでは、isweb以外のサイトからCGIを呼び出した場合エラーになります。