- ベストアンサー
ApacheでCGIが正常に動作しません。
httpd.confの設定でPerl.exeの場所の指定は必要なのでしょうか? 以下の場所に設定を行うのかと思ったのですが、設定するとApache起動時にprogram filesがエラーになってしまいます。 ServerSignature On !g:/program files/apache group/apache/perl/bin/" 設定が必要であれば設定方法をお願いします。 httpd.confの設定に <Directory "G:/Program Files/Apache Group/Apache/cgi-bin"> AllowOverride None # Options None Options ExecCGI Order allow,deny Allow from all </Directory> は追加してあります。 現在、CGIの結果として #!/perl/bin/Perl.exe print "Content-type: text/html\n\n"; print "\n"; print " Hello! WORLD \n"; print "\n"; exit; のように表示されない命令も全て表示されます。 本当はHello!WORLDだけを表示したいのですが。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
案1(httpd.confを変更する) 変更前:AllowOverride None 変更後:AllowOverride All 案2(CGI) G:\ を開き、Program filesのプロパティを開き、 MS-DOSファイル名を調べ、それを「program files」のかわりに入力する apache groupも同様に 案3 >#!"g:/program files/apache group/apache/perl/bin/Perl.exe" "" で囲ってみる NO.2の自分の回答の >ここでいうディレクトリは、... ドライブ名などを指定する方法もあるらしいので違いました。
その他の回答 (4)
- inoue64
- ベストアンサー率29% (334/1115)
回 答 下記解答(No.4)の1番はなんか違いそうだから訂正します AddHandler cgi-script .cgi を、httpd.confの <Directory> の外に設定します。
お礼
回答有り難うございました。 変更を行い正常に動作できました。
- millionwalker
- ベストアンサー率46% (22/47)
Perlの場所はCGIファイルに#!で書けばよいです。httpd.confには不要です。 #!g:/program files/apache group/apache/perl/bin/Perl.exe print "Content-type: text/html\n\n"; print "\n"; print "Hello! WORLD\n"; print "\n"; exit; というCGIでやってみてください。
お礼
試してみたのですが、そのまま表示されました。 何か他に変更する個所はありますか?
- inoue64
- ベストアンサー率29% (334/1115)
> !g:/program files/apache group/apache/perl/bin/" について 全体が " " で囲まれていないからかな(予想) > <Directory "G:/Program Files/Apache Group/Apache/cgi-bin"> ここでいうディレクトリは、サーバーのルートからのパスで、 /cgi-bin/ などとやると思います。
- selenity
- ベストアンサー率41% (324/772)
cgiのファイルの拡張子の問題でしょう。 Windows自体が「.cgi」ファイルの関連づけ を知らないのでしょう。
お礼
回答有り難うございました。 案1の変更を行えば正常に動作するようになりました。 助かりました。