- 締切済み
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> 以上ですが、何かヒントになるようなことでもよいので、識者の方、アドバイスをお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 松延 英樹(@maznobu)
- ベストアンサー率46% (80/171)
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にするのがベターです。 お役に立ちましたら幸いです。
お礼
>maznobuさん 回答ありがとうございます。 今回のように tomcat のみの機能で cgi を実行するために、設定を行わなければいけないファイル(web.xml など)は iso-8859-1 という西ヨーロッパ言語で保存されていました。 試しに utf-8 などに統一させてみましたが、動作せず、です。。。 ネット上の情報で、tomcat で cgi を実行させるには、 「ここをこのように変更する」 程度しか書いている情報はないのですが、その通りにやっても動かなかったりします。 ちなみに、知人は動いたようです。 知人も、その通りにやって、動くPCと動かないPCがあると言っていました。 なので、もはや Tomcat で動かさなければいけない、という理由はないので、断念しようと思います。 せっかく回答していただいたのに申し訳ないです。 ありがとうございました。