[CGI]ローカル上のhttpdサーバを使ってもブラウザ上にjpgが出力されないのは何故?
[上に]
[前に]
[次に]
taka
2000/03/13(月) 10:33:19
win32環境上で
サーバ :apache 1_3_9
ブラウザ:ie5
Perl :5.005_03(win32)
PerlでCGIを使っているんですが、何故かブラウザ上に画像
(*.gif *.jpg)が表示されません。
ちなみにそのスクリプトは
#!/usr/local/bin/perl
print <<"EOH";
Content-type: text/html
<HTML><BODY>
<IMG SRC="./graph/purple_y.jpg">
</BODY></HTML>
EOH
はかれたエラーログは
[Mon Mar 13 09:57:35 2000] [error] [client 127.0.0.1] a:/home/cgi/iaa2/graph/purple_y.jpg is not executable; ensure interpreted scripts have "#!" first line
[Mon Mar 13 09:57:35 2000] [error] [client 127.0.0.1] (2)No such file or directory: couldn't spawn child process: a:/home/cgi/iaa2/graph/purple_y.jpg
でも以下のスクリプトだと一応画像は出力されました。
#!/usr/local/bin/perl
print "Content-type: image/jpeg\n\n";
open(IN,"<./graph/purple_y.jpg") or die "Failed $!";
binmode IN;
binmode STDOUT;
print while(<IN>);
close(IN);
作業スクリプトのパス
A:\home\cgi\iaa2\try.cgi
出力画像のパス
A:\home\cgi\iaa2\graph\purple_y.jpg
Apache1_3_9は約3ヶ月ぐらい前から使っていますが、
最初の頃はIMGタグでも表示されていました。
マシンをリストアしたので、設定ファイルを間違えたのかなと
思うんですがよくわかりません。
それではご指摘お願いします。
しなのむし
2000/03/13(月) 11:59:48
直接、.jpgファイルをGETしてみるとどうなりますか?
フシギダネ
2000/03/13(月) 14:32:40
>A:\home\cgi\iaa2\graph\purple_y.jpg
ここってWebサーバのDocument rootからパス通ってますか?
ふじ
2000/03/13(月) 14:37:57
A:\home\cgi が ScriptAlias されているのでは?
ScriptAlias されたディレクトリ内のファイルは、CGIとして
実行しようとするので、普通に GET する事が出来ません。
#エラーログには、jpeg ファイルをブラウザが GET しにいって、
#Apache がそれを CGI として実行しようとしている旨のエラーが
#記録されていますし。
画像は、ドキュメントルート以下のディレクトリに置きましょう。
taka
2000/03/14(火) 00:25:47
[[解決]]
>直接、.jpgファイルをGETしてみるとどうなりますか?
やはりinternal server errorになりました。
>>A:\home\cgi\iaa2\graph\purple_y.jpg
>ここってWebサーバのDocument rootからパス通ってますか?
通っていませんでした。
>A:\home\cgi が ScriptAlias されているのでは?
されていました。
以上、私の勉強不足のようでした。
Document rootからのパスを効かせ、OptionsをExecCGIにしましたら簡単に解決されました。
みなさん、どうもありがとうございました。
[上に]
[前に]
[次に]