- ベストアンサー
fedora core3でCGIがソースコードで表示されてしまいます。
document root("var/www/html")でCGIを使うために、httpd.confの設定で#Addhandler cgi-script →Addhandler cgi-script , と書き直し、<Directory"var/www/html">のoption項目にExecCGIと追加しました。 アクセスするときはlocalhost/***.cgiとしています。 cgi fileのperlのパスが#!/usr/bin/perlとなっているのでその場所にちゃんとperlがあるかも確認しました。 .cgiファイルはWindowsXPからASCIIで転送したものです。.httpd.confの設定以外はデフォルトの状態です。 何日間か試行錯誤したのですが、うまくいきません。どうかご助言お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
test.cgiをいう簡単なCGIを用意して、ちょっと以下の4パターンについて検証してみました。 環境 SERVER_SOFTWARE = Apache/2.0.52 (FreeBSD) PHP/4.3.9 DAV/2 test.cgi ↑のような変数SERVER_SOFTWAREの設定内容を出力するようなもの。 パターン1: AddHandler cgi-script .cgi 設定なし Options ExecCGI 設定なし →test.cgiファイルのソースコードが表示 +test.cgi: 実行権なし →test.cgiファイルのソースコードが表示 パターン2: AddHandler cgi-script .cgi 設定あり Options ExecCGI 設定なし →403 Forbidden エラーログ:Options ExecCGI is off in this directory: /~/test.cgi +test.cgi: 実行権なし →403 Forbidden エラーログ:Options ExecCGI is off in this directory: /~/test.cgi パターン3: AddHandler cgi-script .cgi 設定なし Options ExecCGI 設定あり →test.cgiファイルのソースコードが表示 +test.cgi: 実行権なし →test.cgiファイルのソースコードが表示 パターン4: AddHandler cgi-script .cgi 設定あり Options ExecCGI 設定あり →test.cgiが実行され、実行結果を表示 test.cgi: 実行権なし →Internal Server Error エラーログ:Permission denied: exec of '/~/test.cgi' failed Premature end of script headers: test.cgi 上記結果から、「AddHandler cgi-script .cgi」の設定が有効になっていない、つまり拡張子cgiのファイルを実行可能なCGIファイルと思っていないとしか思えないです。 どこかで「AddHandler cgi-script .cgi」の設定を打ち消すような設定(RemoveHandlerとか)してないですよね? そういう設定をしていないなら、今のところ原因となりそうな事がちょっと思い浮かばないですね。
その他の回答 (2)
- Lean
- ベストアンサー率72% (435/603)
httpd.confを修正したあとhttpdの再起動はしてますか? 症状的には、「AddHandler cgi-script .cgi」の設定が有効になっていないように見えます。 もし「AddHandler cgi-script .cgi」の設定が有効で、Optionで「ExecCGI」が指定さえていないディレクトリ配下(ScriptAliasで指定されたディレクトリ除く)にある.cgiファイルを実行した場合は「403 Forbidden」になるはずなので。
お礼
回答ありがとうございます。はい、再起動はしています。ExecCGIが指定されてないディレクトリ配下にあるというのは私は該当しているのでしょうか?あと、付け加えますが#ScriptAiliasとコメントアウトされていましたので#をはずしました、しかし、いまだうまくいきません。
- mappy1983
- ベストアンサー率70% (7/10)
CGIに実行権限を与えましたか? また書いてないだけかもしれませんが,AddHandelerには拡張子も必要です. AddHandler cgi-script .cgi # ← 拡張子
お礼
説明不足ですみません。 AddHandlerのところは拡張子も書いています。 また、実行権限も755に設定しています。 また、これも説明し忘れていたのですが、 httpd.confがデフォルトの状態でcgi-binにCGIを入れたときでさえ、CGIはうまく動作しませんでした。 いろいろと説明が足りなくてすみません。
お礼
大変な手間をかけていただき有難うございます!! 現在サーバーにアクセスできない状況なので、後ほどアドバイスいただいたことを確認でき次第ご報告いたします。
補足
報告遅くなって申し訳ありません。 アドバイスいただいたこと確かめてみたのですが、 どうやら問題ないようでした。 もうお手上げ状態です。 とりあえず、この質問は閉じて自分でもう少し調べてから、また質問しようと思うので、その時またアドバイスのほういただければ助かります。 アドバイスありがとうございました。