カウンタ表示の仕方

[上に] [前に] [次に]
たかはし [E-Mail] 1999/06/10(木) 13:50:49
社内ホームページにカウンタをつけようとしたんですが
http://????/cgi-bin/wwwcount.cgi?gifで以下のエラー
がでてしまいます。
"Internal Server Error"
以下省略
サーバーはLinuxです。Apacheのエラーログをみたんですがチンプン
カンプンです。
どなたかご存じの方は教えてください。

B-Cus 1999/06/10(木) 13:55:20
> "Internal Server Error"
内部エラー。原因はログに書かれてるわけ。

> Apacheのエラーログをみたんですがチンプンカンプンです。
その内容をここに書かねば、誰もわからんでしょう。

たかはし 1999/06/10(木) 14:53:24
すみませんでした。
ログは
exec of /???/cgi-bin/wwwcount.cgi failed, reason: No such file or directory (errno = 2)
ですから、ファイルが存在しないといっているのですが、確かに
ファイル(wwwcount.cgi)はあります。
同じディレクトリーにあるIndex.htmは表示できるのでディレクトリー
もあっていると思います。
.htaccessの内容は以下の通りです。
AddType application/x-httpd-cgi .cgi
Options ExecCGI
よろしくお願いいたします。

B-Cus 1999/06/10(木) 15:00:20
> reason: No such file or directory
スクリプト1行目のperlのパスが違ってませんか?
 #!/usr/local/bin/perl
 #!/usr/bin/perl
 ....

たかはし 1999/06/10(木) 15:33:22
えーうちはTurboLinuxなんですが、Perlで検索したところ
/usr/bin/perlだったので
#!/usr/bin/perlに変更しています。

B-Cus 1999/06/10(木) 15:51:51
wwwcount.cgiを置いてあるディレクトリに、
 #!/bin/sh
 echo "Content-type: text/plain"
 echo
 echo "test ok"
という内容の test.cgi を作って、chmod +x test.cgi して、
httpd経由でそれを実行。同じ結果になったら、apacheの設定ミス。
ScriptAliasあたりを見直しましょう。

test.cgiが動いたら、wwwcount.cgiの問題。コマンドラインから
実行してみるとどうなりますか。

たかはし 1999/06/10(木) 16:51:51
>httpd経由でそれを実行。同じ結果になったら、apacheの設定ミス。
同じ結果になりました^^;

>ScriptAliasあたりを見直しましょう。
追加しても同じエラーでした^^;

どうもapacheの設定のようです。もう少しがんばります

たかはし 1999/06/12(土) 11:30:09
えーその後apacheを設定し直して
再度チャレンジしましたが、結局だめでした。
エラーログには
[Sat Jun 12 11:09:01 1999] access to /home/KOJI/cgi-bin/wwwcount.cgi failed for 192.168.1.130, reason: Premature end of script headers
exec of /home/KOJI/cgi-bin/test.cgi failed, reason: Exec format error (errno = 8)
となっていました。
>test.cgiが動いたら、wwwcount.cgiの問題。コマンドラインから
>実行してみるとどうなりますか。
のコマンドラインというのはどうすればいいのでしょう?

B-Cus 1999/06/12(土) 16:28:11
で、test.cgiはまだ動いてない、と。

> Premature end of script headers
うーん、あのスクリプトでこうなりますか…。なんで? PATHの問題?

> コマンドラインというのはどうすればいいのでしょう?
シェル上から
 /home/KOJI/cgi-bin/test.cgi
を実行するとどうなりますか。

たかはし 1999/06/12(土) 16:38:49
perlの問題かなと思い
「とほほのperl入門(概要編)」にあります引数指定、ファイル指定
はできました。(自己完結型はcommand not foundに
なりましたが(; ;)

>シェル上から
> /home/KOJI/cgi-bin/test.cgi
kterm上から(でいいんですよね?)
No Such File or Directoryとなりました。(; ;)

たかはし 1999/06/12(土) 16:39:12
perlの問題かなと思い
「とほほのperl入門(概要編)」にあります引数指定、ファイル指定
はできました。(自己完結型はcommand not foundに
なりましたが(; ;)

>シェル上から
> /home/KOJI/cgi-bin/test.cgi
kterm上から(でいいんですよね?)
No Such File or Directoryとなりました。(; ;)

B-Cus 1999/06/12(土) 21:31:11
> kterm上から(でいいんですよね?)
はい。

> No Such File or Directoryとなりました。(; ;)
スクリプトの置いてあるディレクトリに移動して、lsすると
 % ls -l test.cgi
 -rwxr-xr-x  1 user  group  63 Jun 12 21:30 test.cgi
となりますよね。それを
 % ./test.cgi
として実行してください。それでも
 No Such File or Directory
なら、/bin/shがない、ってことになるんですが、その前に
タイプミスを疑ってください。

たかはし 1999/06/13(日) 10:38:56
こんにちは 前回ボタンを2回押したみたいで、
2回投稿されてしまいました。すみません
> No Such File or Directory
>なら、/bin/shがない、ってことになるんですが、その前に
No Such File or Directoryになりました。
/bin/shがないとはどういうことですか?
一応/bin/shを見るとバイナリーファイルであるんですが...
すみません初歩的なことばっかりで。。

たかはし 1999/06/13(日) 11:18:36
どうも様子が変なのでtest4.cgiを作成して再度
./test4.cgiを実行したところ
String found where operator expected at ./test4.cgi line 2,near "echo "Content-type: text/plain""
(Do you need to predeclear echo?)
が数カ所出ました。コマンドラインからも同じです。
ブラウザ上からは"Internal Server Error"です。
エラーのログは
String found where operator expected at /home/KOJI/cgi-bin/test4.cgi line 2, near "echo "Content-type: text/plain""
(Do you need to predeclare echo?)
syntax error at /home/KOJI/cgi-bin/test4.cgi line 2, near "echo "Content-type: text/plain""
Bareword found where operator expected at /home/KOJI/cgi-bin/test4.cgi line 3, near "echo"
(Missing semicolon on previous line?)
Execution of /home/KOJI/cgi-bin/test4.cgi aborted due to compilation errors.
[Sun Jun 13 11:16:24 1999] access to /home/KOJI/cgi-bin/test4.cgi failed for 192.168.1.1, reason: Premature end of script headers
です。
長文になってしまい申し訳ございません。

B-Cus 1999/06/13(日) 14:34:15
test4.cgiってどんなスクリプトですか?

> String found where operator expected at ./test4.cgi line 2,
> near "echo "Content-type: text/plain"" (Do you need to predeclear echo?)
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
 #!/usr/bin/perl
 echo "Content-type: text/plain"
って書いてませんか。
 #!/bin/sh
 echo "Content-type: text/plain"
なんですけど・・・・・・・・・・・・・・・・・・・・・・・。

まぁ、いろいろ試行錯誤してみてください。

たかはし 1999/06/14(月) 09:39:07
こんにちは
>#!/bin/sh
にしたらエラーがとれました。
カウンタはまだダメですけど...

たかはし 1999/06/14(月) 13:26:05
たびたびすみません たかはしです。
カウンタ表示のエラーログですが、
なにかおわかりになるようでしたらお教えくださいM(_ _)m

[Mon Jun 14 12:32:31 1999] access to /home/KOJI/cgi-bin/wwwcount.cgi failed for 192.168.1.48, reason: Premature end of script headers
/home/KOJI/cgi-bin/wwwcount.cgi: =: command not found
上記エラーがあと12個
/home/KOJI/cgi-bin/wwwcount.cgi: line 112: syntax error near unexpected token `{'
/home/KOJI/cgi-bin/wwwcount.cgi: line 112: `if ($ARGV[0] eq "test") {'
です。
すみませんよろしくお願いいたします。

B-Cus 1999/06/14(月) 16:36:36
> /home/KOJI/cgi-bin/wwwcount.cgi: =: command not found
…今度はperlスクリプトをshスクリプトとして実行してるし。

/bin/sh と /usr/local/bin/perl は全くの別物です。
前にあげたshスクリプトは、ただの動作確認用スクリプトです。

今持ってるwwwcount.cgiは捨ててください。配布されている
wwwcount.cgiを持ってきて、(必要なら)perlのパスだけいじって、
apache経由で実行、それでもダメなら wwwcount.cgi?test で
実行。それでもダメならコマンドラインから perl -c wwwboard.cgi で実行。

たかはし 1999/06/14(月) 17:04:06
[[解決]]
お手数おかけしました。
パーミッションを全てやり直して、
wwconunt.cgiをDLしなおして全てうまくいきました。(表示されました)
最後までつきあってくださいましてありがとうございました。

[上に] [前に] [次に]