新規記事投稿 フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: サブルーチンが動かない?
Date: 2000/06/02 20:20:33
Reference: mesh.forum.4/00211

6月2日に、kobaさんは書きました。

>ごめんなさい。確かに いろいろ勝手いじったために、話をややこししくしてしまいました。
> ・漢字コードを変更
> ・print文に変更
> ・関数の呼び方を変更
>などなど・・・
>
> ちょっと上記は忘れてください ^^;  話を仕切りなおします。

了解しました。

> ダウンロードし、該当のディレクトに格納した後にやったことは以下のとおり
>です。(ほかのことはやってません) OSは TurboLinux 4 、Perlは最初からついていた Perl5 です
>・site.plを修正 -> $forumroot などを自環境に設定
>・各 CGIの先頭の行の修正 --> 自環境では /usr/bin/perl
>・各ファイルのパーミションの設定
>
>これだけやってみて、
>  http://www2.なんちゃら.jp/~koba/test/forum/index.cgi
>とブラウザから指定(なんちゃらは、省略)
> そして、ブラウザには Internal Server Error が出て、/var/log/httpd/error_log には
>Premature end of script headers: /home/users/koba/public_html/test/forum/index.cgi
>とかかれています。

うーん、index.cgiの問題でもなさそうに思えるんですけど
ほかのPerlのスクリプトは動くんでしょうか。

#!/usr/bin/perl
print   "Content-Type: text/html\n\n";
print   "<HTML><BODY><H1>It's OK!</H1></BODY></HTML>";
exit(0);

や

#!/bin/sh
echo 'Content-Type: text/html'
echo ''
echo '<HTML><BODY><H1>It's OK!</H1></BODY></HTML>'

等を実行権をつけてコマンドラインからフルパス指定で実行するとどうなりますか。

> そこで、念のため、各ファイルのあるディレクトに移動後 コマンドラインより
>>perl index.cgi
>と実行。・・・・・何も出力がない。次のプロンプトが表示されるだけ。
>
>という次第です。 つまり、HTMLの出力がないんです。だからブラウザも表示のしようが
>ないのかな? って思ってます。

HTMLの出力以前にヘッダの出力もないから、「Premature end of script headers」のエラーになっている
ということで、そこは現象と原因がはっきりした感じですね。

真の原因「なぜ何も出力がないか」は残りますが...(^^;;

> この件は、
>
>>この「Bad Forum」を出力しているのは、forum.plの以下の関数ですが、
>>そこではHTTPヘッダに続けてHTMLを出力しその中で「Bad Forum」も出力していますから、
>>「Bad Forum」だけが出力されるというのもおかしい気がするのですが。
>
> と同じで、「Bad Forum」 だけが出力されちゃって、HTMLを一切出力していないのと
>同様です。

あれっ、これはarticle.cgiの話ですよね。
今までの話題はindex.cgiだったと思いますが。
それに「Bad Forumだけが出力」されるのはやはりおかしいです。

>>「「Bad Forum」だけしか吐き出されないのでやっぱりブラウザで表示されない」とおっしゃってますが、
>>これはコマンドラインから実行したときの話ということでよいですか?
>
> はい。そうです。ブラウザからだとHTML出力できず、 Internal Server Error となってしまうので、
>試しに コマンドラインから実行しました。本来、article.cgi は引数を伴って実行されるわけですが、
>仮に引数無しで、つまり ブラウザにて,http://www2.biglobe.ne.jp/%7Enir/Forum/article.cgi と指定しても
>HTMLは出力されてますよね? ですが私の環境では  http://www2.なんちゃら.jp/~koba/test/forum/article.cgi
>と指定すると、やっぱり、 Internal Server Error です

仕切り直したあとでも、article.cgiをコマンドラインから実行すると「Bad Forumだけが出力」
されるのでしょうか。

>>オリジナルのスクリプトのままなら正常に動作すると思うのですが...
>
> ですよね?
> つまり、「おいらの設定が間違ってる」の一言だとは理解してるのですが、、、
>それがどこなのかが、難しくて。

そちらの設定が悪いと決めつけてるわけではないですが、いろいろと正確な情報を
もらうためにやかましいことを言ってすみませんです。

> (先にいろいろやっちゃったので)話があちらこちらになってしまって真に申し訳ありません。

いろいろやってみるのはいいことだと思いますが、何をしたらどうなったのかを正確に
記録する(説明する)ということをしないと、第三者に有益な情報とならない、ということです。

>本当は、URLを提示したいところなのですが、完全にCloseなローカルな環境でして・・
>重ね重ね申し訳ありません。

とすると、kobaさんにがんばってもらうしかないですね...(^^;;