AN HTTPD ゲストブック/コメント集(2002年9月20日13:34)


TADA lawson@mse.biglobe.ne.jp 2002/09/21 20:28

中田さん
おっしゃるとうりです。何をいじったのか、わからないようでは勉強になりませんね。お忙しいところ、申し訳ございません。
Perlについても、ご回答いただきありがとうございました。
何しろ、始めたばかりなので、わからないことばかりで、ご迷惑をおかけして、申し訳ありません。


中田昭雄 nakata@st.rim.or.jp 2002/09/21 20:08

TADA さん、
失礼ながら、おそらく「PCの性能の問題」ではなく、TADAさんが無意識におかしなことをやっているのではないかと思います。 一度自分がどういう操作をしているのかひとつずつ記録していくくらいにしてやってみるのがよいと思います。 

Perl の質問は、AN HTTPD に無関係なものは避けてほしいです。
無関係かどうかわからないのであれば質問してもらってもかまいませんが、Perlの解説本を読めばわかるような話だとちょっと悲しいですね。


TADA lawson@mse.biglobe.ne.jp 2002/09/21 19:45

中田さん
おっしゃるとおり、.cgiでも動くようになりました。いきなり動くようになりましたので、何の設定が間違えていたのかはわかりませんでした…
一度動いた後、そのまま動くときもありますが、止まってしまうこともあります。単純にPCの性能の問題だと思います。

ところで、Perlについてお聞きしたいことがあるのですが、この場をお借りしてもよろしいのでしょうか?このBBSには詳しい方がたくさんいらっしゃるようなので…


中田昭雄 nakata@st.rim.or.jp 2002/09/21 17:55

TADAさん、
最初の質問の話で、拡張子は .cgi でも動くはずだと思います。何か別のところが違っていたのではないでしょうか?
ためしに、また .pl から .cgi に戻してみてください。

次のなかなか表示されない話では、再起動させてちゃんと表示されるようになったあとはどうなるのですか?
つまり、そのあとまたなかなか表示されなくなるのか、それとも、一度うまくいったらそのままうまくいくのか、どちらでしょうか?


TADA lawson@mse.biglobe.ne.jp 2002/09/21 12:11

>いとさん
ご返答、ありがとうございました。perl.exeにはすでになっておりましたので、プログラムの拡張子を試しにplとしてみたところ、ようやく表示されるようになりました。確認すべき場所の重大なヒントになりました。とても感謝いたしております。

さて、もうひとつ問題があるのですが、ご教授いただけますでしょうか。
index.htmlに<!--#exec cmd="./count.pl"-->を埋め込み、表示させようとすると、ANHTTPのアイコンにカミナリのマークが出て、SSI処理中となってしまい、そのぺージがなかなか表示されません。
そのまま無視して(ブラウザは開いたままです)、ANHTTPを一度終了させて、再起動すると、今度はちゃんと表示されるようになるのです。
この原因は何なのでしょうか?

お忙しいところ、申し訳ありませんが、よろしくお願いいたします。


中田昭雄 nakata@st.rim.or.jp 2002/09/21 07:34

いとさん、
PerlIS.dll での SSI の件では、
print "$no\n";
と "\n" があると表示されると思います。
が、直した方がいいですね。


いと gfh05223@nifty.com 2002/09/21 01:49

TADAさん
cgiの実行プログラムが PerlIS.dll なら perl.exe にすれば
表示されると思います。

中田さん
PerlIS.dll でもカウンタとしての動作はしているのですが、
print "$no";
が STDOUT に出力できていないかのような感じです。

Content-type ヘッダを付けてCGIにすれば PerlIS.dllでも動くのですが
SSIだとどうしても駄目ですね。


TADA lawson@mse.biglobe.ne.jp 2002/09/20 13:34

どなたか教えてください。
ただいま、SSIを勉強しようと思い、基本的なアクセスカウンタを作ってみたのですが、まったく何も表示されません。
Perlのコーディングが間違っているのかと思い、買ってきた本のサンプルを出版社からダウンロードしましたが、それも表示されませんでした…。
OSはWINXP(HOME)で、IE6とNN7です。どちらのブラウザで試しても、だめでした。OSかブラウザの設定に問題があるのでしょうか?それとも、Httpdの設定なのでしょうか?過去のFAQをみても、よくわかりませんでした…。理解不足で申し訳ありません。
サンプルプログラムのcount.cgiとcount.shtmlはどちらも同じディレクトリに入れてあります。
以下にそのコードをコピーいたします。ご教授のほど、よろしくお願いいたします。

(count.cgi) 
#! /usr/local/bin/perl

# ファイル名
$filename = "count.txt";

# ファイルを開く
if (!open(FP, "$filename")) { # 失敗
$no = 0;
} else { # 成功
$no = <FP>;
close(FP);
}

# 1つ増やす
$no++;

print "$no";

if (!open(FP, ">$filename")) { # 失敗
print "ファイル $filename がオープンできませんでした ($!)\n";
} else {
print FP $no;
close(FP);
}

(count.shtml)
<html>
<head><title>初めてのアクセスカウンタ</title></head>
<body>

カウント数は <!--#exec cmd="./count.cgi"-->

</body>
</html>