新規記事投稿 フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: Internal server errorは
Date: 1998/06/27 15:36:33
Reference: mesh.forum.3/00424

6月24日に、ひろきさんは書きました。

>CGI はお客様の UID で実行されます。
>
SetUID CGIなサーヴァなのですね。チャンとしている所の様ですね。

>1.CGIが実行されるディレクトリは Group や Other による書き込みができないこと。 
>2.CGIファイルは実行されているコマンドは Group や Other による書き込みができないこと。 
>
これはSetUID CGIなサーヴァでCGIを実行する場合の制限ですね。
うぇぶ会議室をこの様なサーヴァで動かす時の正しいパーミッションの設定は
オンラインマニュアルの「SetUIDサーヴァ環境でのディレクトリリスト」を参照して下さい。
# もっともこれは今回の問題とは関係が無いでしょうけど。(^^;

>>もしも telnet アカウントがあるなら、サーヴァのエラーログが読めるかもしれません。
> 探し方が悪いのかも知れませんが、見つけることが出来ませんでした・・・
>
と言うことは、telnetアカウント自体はあると言うことですよね?
でしたら頑張ってエラーログファイルを見つけだしましょう。
# 今回の場合、それが一番の解決法でしょうから。

サーヴァに使っているOSは何でしょうか? uname -a で分かるものですが。
OSが分からないとプロセスリストコマンドのオプションが良く分からないのですが
SunOSではps -axw、Linuxではps -aw、Digital UnixやHP-UXでは ps -efとすると
すべてのプロセスに関するリストが取れますから、その内httpdのパスを見て下さい。

例えば、/usr/local/apache/src/httpd と言うプロセスが実行されていたと
すると、apacheのパスは /usr/local/apache だと言うことが分かります。
/usr/local/apache に cd してみると、いくつかディレクトリがあると
思いますが、その中の logs ディレクトリにエラーログ(error_log)があります。

生憎 logs ディレクトリが無い場合には、かさばるログファイルを別のディスクに
置いていると考えられます。その場合には、conf ディレクトリの中の httpd.conf と
言うファイルにログファイルの位置が書いてあります。ErrorLog で始まる行が
エラーログを指定している所です。

ログファイルを読む時は、

tail error_log

とすると、ログの最後だけが読めますから、エラーが起きた直後に覗いてみて
どんなエラーが起きているのか教えて下さい。

もしもエラーログファイルが見つからない、とか、見つかったけど一般ユーザには
読めない設定になっていた、とか言う時には、article.cgiをいじれば軽微な
エラーなら見つかるかもしれません。

article.cgi の最初の方に以下の様な所がありますので、強調文字の部分を加えて
記事の投稿をしてみて下さい。エラーが初期の段階で出ているのではなく、また、
軽微なものの場合、エラーが読めるはずです。エラーが出ない場合はHTMLの
ソースが出力されます。
# perl自体がエラーでcoreダンプしているような場合は上手く行かないでしょうけど。

----- ここから -----
foreach $key (@ids) {
        $ids{$key} = $http_args{$key};
}
if ($post) {
	open(STDERR, '>&STDOUT');
	select(STDERR); $| = 1;
	select(STDOUT); $| = 1;
	print("Content-Type: text/plain\r\n\r\n");
	&http'strip_args(*ids);
	&check_items;
	&kanji_convert;
	&save_items;
----- ここまで -----

>>それから、ご使用の perl のヴァージョンは何ですか?
> perl (Version 5.004_67)だそうです。
>
ほう、それはそれは。(笑)

何かと言うと5.004_67はまだメンテナンスリリースにもなっていない
5.005に向けた開発者用リリースなのです。それに、出たのは6月23日です。
つまり入れ替えたばかりなのですね。(笑)

# サックリと直っていないかな? と思ってひろきさんの所をチェックしてみましたが
# 相変わらずの様ですね。うーむ。

5.004_67自体はまだバグがあるかもしれませんが、5.004_04のバグもずいぶん
取っていますし、早速、うちのサーヴァも全て5.004_67に入れ替えて使っていますが
うぇぶ会議室の実行など、CGIの実行に特に支障が出ていることは無いです。うーむ。

# あと関係ないですが、ひろきさんの所のトップページから"anime2.htm"と言う
# ペーヂにリンクが張ってますが、ファイル名の"2"がSJISの漢字で入っているので、
# "anime%82%51.htm"としないとまずいです。ブラウザによっては辿れ無いですし。
# まあ、単に"anime2.htm"としようとしたのを間違っただけだとは思いますが。