• ベストアンサー

CGIわかる人、教えて下さい

CGIのことでお聞きしたいんですが、 フリーのCGIスクリプトをカスタマイズし、 HPに載せようとしたんですが、 エラーがでます。 カウンターなのですが、そこには (NO log file)と表示されます。 アクセス権もしっかり設定したのだが、 何がおかしいんでしょう? おそらく、予想では以下の設定がわからないからと思っています。 $log_d= ".";  # ログ生成ディレクトリ(絶対・相対パスで 最後の / は省く) これは、どうゆうふうに書いたらいいのでしょう。

質問者が選んだベストアンサー

  • ベストアンサー
  • Haizy
  • ベストアンサー率40% (404/988)
回答No.3

こんにちは。 なぜ? というか、よくあるパターンとか、一般的な確認点、対処とか・・・ 有りそうなフレーズ並べてみるテスト(^^; ヒント程度になれば、幸いです。 >$log_d= ".";  # ログ生成ディレクトリ(絶対・相対パスで 最後の / は省く) ログファイルが logfile.txt だとして、同じディレクトリにある場合 $log_d="logfile.txt"; となるはず。相当特殊な組み方しない限り、こうなるはずですが? さらに、空っぽのファイル(空のメモ帳を保存したファイル)をあらかじめ作ってあげないといけないヤツとか、結構有りますが。その辺をもういっぺん確認してみてください。 $log_d="ディレクトリ/logfile.txt"; とか、(他のディレクトリ内にログ) $log_d="../logfile.txt"; とか一つ上のディレクトリにログ あと、ファイルの属性は書き込みができるように 606 が普通でしょう。ま、この辺は、666であったりと「サイト次第」なところ有るので、サイトのマニュアルに従ってあげてください。 でわ

peter8
質問者

お礼

お返事ありがとうございました。 現在、CGIスクリプトと悪戦苦闘しています。 HTMLのようにうまくいかないですね。

その他の回答 (3)

  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.4

Not logfile=ログファイルがありません ログファイルが読み込めなくてエラーが出ているのですね。 問題の > $log_d= "."; ですが、ここを修正すれば動くはずです。 コメントに > # ログ生成ディレクトリ(絶対・相対パスで 最後の / は省く) とありますよね。 peter8は”相対パス”で入力する方が良いでしょうね。(技術・知識的な問題です) ディレクトリの指定は、例えばログファイルが「./log/ログファイル」にあるのなら、そのディレクトリは「./log/」となりますよね。 そこから最後の/を省いた「./log」が正解です。 $log_d= "./log";としてやりましょう。 (「$log_d/ファイル名」という形式でスクリプト中で使われるはずです。) この「log」ディレクトリ(フォルダ)はご自身で作って、ディレクトリのパーミッションは「777」にして下さい。 「生成」とありますから、自動的にそこにファイルが作られると思います。 #1の方もおっしゃってますが、ダウンロードしてきたスクリプトなら、まず製作者の方に聞いてからここに来られた方が良いと思いますよ? 製作者じゃないと、やっぱり回答がちょっとずれてしまったりしますから…

peter8
質問者

お礼

お返事ありがとうございました。 現在、CGIスクリプトと悪戦苦闘しています。 HTMLのようにうまくいかないですね。 せっかくCGIの使えるサーバに移動したのに・・・。

noname#225520
noname#225520
回答No.2

うーん、「おなかが痛いのですが、何故でしょう」と言われているようです。これだけですと何もわかりません。 そのCGI(Perlで書かれているのですよね?)がログファイルを自動生成するのか?予め用意しなければならないのか?そこらへんはソースを見てみないとわからないです。 NO log fileと表示されるのですから、スクリプトはちゃんと動いてますね。ログファイルが見つからない、ということなのでそのあたりを再度チェックする必要はあります。

peter8
質問者

お礼

ありがとうございます。 なにせ、CGIの勉強も 始めたばかりでよくわかりません。 本を読んでもわからない・・・。 とにかく、もう一度調べます。

noname#8250
noname#8250
回答No.1

う~ん。もらってきたCGIスクリプトならばそのサイトの掲示板で聞きましょう。常識です。だって作っている人、使っている人が答えてくれるわけですから。 >$log_d= ".";  # ログ生成ディレクトリ(絶対・相対パスで 最後の / は省く) >これは、どうゆうふうに書いたらいいのでしょう。 言葉そのものの意味です。あなたがログファイルをどのディレクトリに置くかを指定するものです。 そのファイルから見てログ保存用ディレクトリはどこにあるかを指定すればいいのです。(相対パスの場合)多分ログ保存用ディレクトリは自分で作って指定するんだと思います。この意味も分からないのならば設置は止めた方がいいです。配布先で説明がされているはずですよ。 初心者だからと勉強しないのはよくありません。CGIスクリプトの場合エラーが出ると場合によってはサーバに多大な負荷を与えることになるのです...とプロの旦那にいわれました。(T.T)

peter8
質問者

補足

回答ありがとうございます。 その常識はわかっているつもりです。 CGIスクリプトもメインの記述を変えることは しません。 ただ、わからないのはURLは×とありまして フォルダだけを指定したら、エラーになるのです。

関連するQ&A