CGI アクセス時に身に覚えの無いアドレス

お聞きたいのですが、CGI-ExecutablesにフリーのCGI入れて、最低限の箇所だけ変更をして、動かしたら、下記のように出てきました。
http://foo.example.com/cgi-bin/tester を開けませんでした。サーバーfoo.example.comが見つかりませんでした。
これはいったい何ですか?
何でこんな所にアクセスしようとするのでしょうか?
全く別のCGIを入れて試してみましたが、同じエラーが出ます。
なので、CGIスクリプトの中に記述されているURLでは無いですよね?
Apacheの設定で何か、おかしな所でもあるのでしょうか?
教えてください。

投稿日 2003/12/10 11:47

返信: 15

2003/12/10 13:48 Community User への返信

理由が分かりました。
httpd.confの中で、Error500の際の出力ドキュメントのリンクが
http://foo.example.com/cgi-bin/tester
になっていました。
ひとまず、今は適当に繋がるサイトにURLを変更していますが、結局はCGIに何か問題があるという事なのでしょうか?
ほとんどCGIの中身はいじっていないのですが、CGIを有効にする場合、サーバー管理のWebのオプションでCGIの実行にチェックを入れるだけで良いのでしょうか?
それと、Perlのパスは、usr/bin/perl でいいですよね?
何が問題なんだろうか、分からない。。

2003/12/11 06:26 Community User への返信

> 今は適当に繋がるサイトにURLを変更しています..
これは御自分で用意されたサイトでしょうか?
> Perlのパスは、usr/bin/perl..
単なる記載ミスと思いますが、/usr/bin/perl です。先頭の / があるか無いかで意味が全然違います。
/var/log/httpd/error_log にはなんと出てますか?
(パスはこれでいいかな?)

2003/12/11 06:26 Community User への返信

> 今は適当に繋がるサイトにURLを変更しています..
これは御自分で用意されたサイトでしょうか?
> Perlのパスは、usr/bin/perl..
単なる転記ミスと思いますが、/usr/bin/perl です。先頭の / があるか無いかで意味が全然違います。
/var/log/httpd/error_log にはなんと出てますか?
(パスはこれでいいかな?)

2003/12/11 11:22 Community User への返信

パスを確認したら、先頭にちゃんと / 入っていました。
error_logには、下記の内容がありました。
見方が分からないです。。
[Wed Dec 10 16:33:12 2003] [notice] caught SIGTERM, shutting down
Processing config directory: /etc/httpd/sites/*.conf
Processing config file: /etc/httpd/sites/0000_10.0.1.2_80_digiaro.net.conf
Processing config file: /etc/httpd/sites/virtual_host_global.conf
[Wed Dec 10 16:33:18 2003] [alert] httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Wed Dec 10 16:33:19 2003] [notice] Apache/1.3.28 (Darwin) DAV/1.0.3 PHP/4.3.2 mod_perl/1.26 configured -- resuming normal operations
[Wed Dec 10 16:33:19 2003] [notice] Accept mutex: flock (Default: flock)
[Wed Dec 10 16:51:13 2003] [notice] SIGUSR1 received. Doing graceful restart
Processing config directory: /etc/httpd/sites/*.conf
Processing config file: /etc/httpd/sites/0000_10.0.1.2_80_digiaro.net.conf
Processing config file: /etc/httpd/sites/virtual_host_global.conf
[Wed Dec 10 16:51:13 2003] [alert] httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Wed Dec 10 16:51:14 2003] [notice] Apache/1.3.28 (Darwin) DAV/1.0.3 PHP/4.3.2 mod_perl/1.26 configured -- resuming normal operations
[Wed Dec 10 16:51:14 2003] [notice] Accept mutex: flock (Default: flock)
[Wed Dec 10 16:51:14 2003] [warn] long lost child came home! (pid 9990)
これで何か原因が分かりますでしょうか。

2003/12/12 07:11 Community User への返信

お示しのには、notice と warn ばかりで、error は出てません。error のときには、[error] と表示されます。このお示しの時間(Dec 10 16:33:12 2003 - Dec 10 16:51:14 2003)に cgi は実行されているのでしょうか?もし、実行されているのなら、error_log には何もメッセージが出てない事になります(ちょっと考えにくいです)。

2003/12/12 07:35 Community User への返信

再度サーバー管理のログで確認したところ、下記のようなErrorが残っていました。
[Fri Dec 12 10:29:37 2003] [error] (2)No such file or directory: exec of /Library/WebServer/CGI-Executables/digibbs/tengoku.cgi failed
[Fri Dec 12 10:29:37 2003] [error] [client 10.0.1.2] Premature end of script headers: /Library/WebServer/CGI-Executables/digibbs/tengoku.cgi
これの意味する事は何でしょうか。教えてもらめますか。
ド心者ですいません。

2003/12/12 11:47 Community User への返信

こんにちは。
10.2までエラーの処理はhttpd.confで次のような選択肢がありました。
1) plain text
2) local redirects
3) external redirects
そこで現在試運転中の10.3のhttpd.confを確認しましたが、エラー処理は以下の通りでした。
#ErrorDocument
ErrorDocument 500 http://foo.example.com/cgi-bin/tester
外部リダイレクトの設定(しかもいい加減なアドレス)がされており、またエラーの設定も404や402はなく、500だけという点で10.3からhttpd.confの内容が変更されているようです。
現状で言えることは、httpd.confの設定に問題があり、Perlは関与していないということだと思います。
// インターナルエラーを吐くPerlのScriptに、もちろん問題はありますが。。。
side7

2003/12/12 13:16 Community User への返信

こんにちは。
Apacheのマニュアルの「ErrorDocument ディレクティブ」にもあるように設定を修正する必要があります。
GUIでの設定が不可能であればアップルのミスで、Perlの問題ではないと思います。
// もちろんエラーを返すスクリプトに問題はありますが。。。
side7

2003/12/12 16:54 Community User への返信

> Premature end of script headers: /Library/WebServer/CGI-Executables/digibbs/tengoku.cgi
このスクリプトが動くためのパーミッションの設定に問題があるときにこのエラーが出ます。この cgi はファイルに書き込むのでしょうか?書き込むファイルの owner、group、permission は大丈夫ですか?cgi script はウエブから動くときには、nobody で動きますよ。nobody で書き込めるようになってますか?
よく分からないのなら、最初の perl の指定に
#!/usr/bin/perl -T
と -T オプションを付けるといいかも知れません。
参考
#!/usr/bin/perlの後に続く-Tの意味を教えてください。 (2003/12/11 1:35pm)

2003/12/13 13:46 Community User への返信

perlのパスも一度、 -T を付けて試してみましたが、やはりだめでした。
CGI-Exectables/bbs/ の中には
img jcode.pl logs ●●●.cgi
の4つが入っていますけど、ふつうパーミッションはどのようになるのでしょうか?
一応ダウンロードしたHPに記載されていた通りのパーミッションにしてはいるのですが、やはり500のErrorが出てしまいます。

2003/12/14 10:15 Community User への返信

動きません。
cgi としてではなくて、実行可能にしておいて、./tengoku.cgi としても動かないので、現在の環境では動かないスクリプトなんだと思います。(OSX ではなくて別の環境で動かしてみましたが、対して違わないでしょう)
別のを探して下さい。

2003/12/23 14:40 Community User への返信

>Apacheのマニュアルの「ErrorDocument ディレクティブ」にもある
>ように設定を修正する必要があります。
>GUIでの設定が不可能であればアップルのミスで、Perlの問題ではな
>いと思います。
>// もちろんエラーを返すスクリプトに問題はありますが。。。
10.2Serverのhttpd.conf見てみました、こちらはコメントアウトして
あります。
そもそもデフォルトのファイルを用意してあっても良いのでは?

2003/12/26 17:43 Community User への返信

すいません。返事遅れました。
原因が分かりました。
単純に、変換コードをUNIXにしていませんでした。
vim -b でファイルを開いて、%s/^M//g で保存し直したら、問題なくCGIが動くようになりました。
色々、おつきあい頂きありがとうございます。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

CGI アクセス時に身に覚えの無いアドレス

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。