投稿日:2004年12月07日 作成鷹の巣

No.17909 Apache2 のCGI実行するとファイルダウンロードになる。



Apache2 のCGI実行するとファイルダウンロードになる。

No.17909 投稿時間:2004年12月07日(Tue) 13:05 投稿者名:poppo URL:

はじめまして、サーバ環境構築初心者「poppo」です。

Apache2+Corega2にてWebサーバの設定を行っているのですが、
CGIファイル「.cgi」を実行(URLリンク)しても、そのCGIファイルの
"実行結果ファイル"をダウンロードするダイアログが表示されるだけで、
ブラウザにはCGIの実行結果が表示されないのです。

少々手詰まりの状態ですので、ご教授もしくはアドバイスお願いします。

なお、CGIに関してのhttp.confは以下のようにしてあります。


-------------------------------------

ScriptAlias /cgi-bin/ "/web/htdocs/default/cgi-bin/"

<Directory "/web/htdocs/default/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>



AddHandler cgi-script .cgi
AddHandler cgi-script .pl

#AddHandler send-as-is asis


追記。

No.17910 投稿時間:2004年12月07日(Tue) 13:09 投稿者名:poppo URL:

すいません、自己フォローです。

ダウンロードしたファイルには、CGIの実行結果が返ってくるので、Perlのパスが間違っているわけでもなく、
実行できていないわけでもないみたいです。
また、拡張子が何も無いファイル(cgiのプログラムソース)では、普通に実行結果がブラウザに表示されるのです。

どなたか、似たような症状が合ったりしましたらアドバイスお願いします。


では


Content-Type は?

No.17913 投稿時間:2004年12月07日(Tue) 16:44 投稿者名:通-行-人 URL:

> ダウンロードしたファイルには、CGIの実行結果が返ってくるので、Perlのパスが間違っているわけでもなく、
> 実行できていないわけでもないみたいです。

その CGI で、 HTTP ヘッダはきちんと出力させていますか。
ブラウザはヘッダの Content-Type: の項を見て、 そのまま表示させるかダウンロードとして処理するかを決定しています。
HTML なら 「text/html」、 画像なら 「image/png」 等、 ブラウザがそのまま表示できる形式を指定する必要があります。
XHTML で使うことのある 「application/xhtml+xml」 は、 一部の古いブラウザでは解釈してくれません。


HTTPヘッダは、設定してありました。

No.17914 投稿時間:2004年12月07日(Tue) 16:59 投稿者名:poppo URL:

通行人さん、お返事ありがとうございます。
HTTPヘッダなのですが、これはきちんと(text/htmlではありませんが)設定してありました。
(print "Content-type: text/plain\n\n";)

といいますか、Apache2に付属しているテストCGI『printenv』を『printenv.cgi』
に拡張子をつけて実行テストを行っているのですが、前者はブラウザに表示されて、
後者はCGI結果がダウンロードファイルとなってしまうのです。

ですので、CGIの問題ではないと思うのですが。。。
どうなのでしょうか?


<Directory "/web/htdocs/default/cgi-bin/">

No.17917 投稿時間:2004年12月07日(Tue) 21:38 投稿者名:ほげ URL:

> 通行人さん、お返事ありがとうございます。
> HTTPヘッダなのですが、これはきちんと(text/htmlではありませんが)設定してありました。
> (print "Content-type: text/plain\n\n";)
>
> といいますか、Apache2に付属しているテストCGI『printenv』を『printenv.cgi』
> に拡張子をつけて実行テストを行っているのですが、前者はブラウザに表示されて、
> 後者はCGI結果がダウンロードファイルとなってしまうのです。
>
> ですので、CGIの問題ではないと思うのですが。。。
> どうなのでしょうか?

<Directory "/web/htdocs/default/cgi-bin">

<Directory "/web/htdocs/default/cgi-bin/">


解決しました!!

No.17920 投稿時間:2004年12月08日(Wed) 09:09 投稿者名:poppo URL:

ほげさん、ありがとうございます。
ご指摘どおり、最後の「/」が問題だったようです。

って、……初期設定と同じよう(「/」なし)ではダメだったのですね。
もうちょっとマニュアル見て勉強したいと思います。

ほげさん、通行人さん、アドバイスありがとうございました。


では


|目次|掲示板|過去ログ目次|▲頁先頭|