• 締切済み

Tomcat で CGI の実行結果が表示されません

Tomcat 6.0.24 を使って、perl または python で記述された cgi を実行したいのですが 実行されているのかされていないのか?がよくわからない状態で困っています。 ※環境は Windows XP Pro SP3 上です。 具体的には、cgi 側で単純な HTML を print し、その結果をブラウザで確認したいだけなのですが その print 結果が何も出力されません。 (ブラウザでアクセスすると、特にエラーは出ず、真っ白な画面) ◆試している cgi ソース(Perl) -------------------------------------------- test.cgi -------------------------------------------- #! c:/perl/bin/perl print "Content-Type: text/html\n\n" print "<html><body>Hello, World</body></html>" -------------------------------------------- ◆この test.cgi を配置している場所  インストールディレクトリ/webapps/ROOT/WEB-INF/cgi/test.cgi ◆ブラウザでアクセスしている場所  http://localhost:8080/cgi-bin/test.cgi ◆検証用 HTML の配置  インストールディレクトリ/webapps/ROOT/WEB-INF/cgi/test.html  →普通の HTML を確認のために配置。しかし、同様のアクセスで表示できず(画面真っ白) ちなみに、Tomcat インストール後にやったことは以下です。  1.インストールディレクトリ/conf/context.xml の 以下の部分に    「privileged="true"」という記述を追加    <Context>     /*中略*/    </Context>    ↓    <Context privileged="true">     /*中略*/    </Context>     2.インストールディレクトリ/conf/web.xml の以下の部分のコメント化を解除    <servlet>     <servlet-name>cgi</servlet-name>    /*中略*/    </servlet>    <servlet-mapping>     <servlet-name>cgi</servlet-name>     <url-pattern>/cgi-bin/*</url-pattern>    </servlet-mapping>  3.上の1、2では perl を実行してくれないので、    インストールディレクトリ/conf/web.xml に以下を追加    <init-param>     <param-name>executable</param-name>     <param-value>C:\Perl\bin\perl.exe</param-value>    </init-param>     ↓結果的に    <servlet>     <servlet-name>cgi</servlet-name>    /*中略*/     <init-param>      <param-name>executable</param-name>      <param-value>C:\Perl\bin\perl.exe</param-value>     </init-param>    </servlet> 以上ですが、何かヒントになるようなことでもよいので、識者の方、アドバイスをお願いいたします。

みんなの回答

回答No.1

ApacheとかじゃなくてTomcatのWebサーバー機能で、ということなんですよね? TomcatのCGIはあまり実績が無いので自身は無いのですけども、 #! c:/perl/bin/perl っていうところは空白はあって大丈夫なのですか? #!c:/perl/bin/perl とか? あと、.xml ファイルのエンコーディングはあっていますか? ファイルをシフトJISで書いているのに冒頭に<?xml version="1.0" encoding="UTF-8"?>とかなっているとか。 Tomcatってインストール直後のこの辺がでたらめなのでチェックしてみてください。 基本はUTF8で書いてエンコードもUTF8にするのがベターです。 お役に立ちましたら幸いです。

RetraTurbo
質問者

お礼

>maznobuさん 回答ありがとうございます。 今回のように tomcat のみの機能で cgi を実行するために、設定を行わなければいけないファイル(web.xml など)は iso-8859-1 という西ヨーロッパ言語で保存されていました。 試しに utf-8 などに統一させてみましたが、動作せず、です。。。 ネット上の情報で、tomcat で cgi を実行させるには、  「ここをこのように変更する」 程度しか書いている情報はないのですが、その通りにやっても動かなかったりします。 ちなみに、知人は動いたようです。 知人も、その通りにやって、動くPCと動かないPCがあると言っていました。 なので、もはや Tomcat で動かさなければいけない、という理由はないので、断念しようと思います。 せっかく回答していただいたのに申し訳ないです。 ありがとうございました。

関連するQ&A