- - PR -
Tomcat+Apacheでバーチャルホスト設定を行った時CGIが動きません。
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-03 10:02
■開発環境は下記の通りです
RedhatLinux 8.0 j2sdk-1_4_1_01 tomcat-4.1.24 apache-2.0.43 perl v5.8.0 apacheとtomcatの連携を行い、 バーチャルホストの設定をしました。 html,jspファイルは問題なく動くことが確認できました。 しかし、cgiがでフォルトの場所以外では動きません。 (バーチャルでcgiが動きません。) どのファイルの何を変更すればよろしいでしょうか? ■server.xmlの設定 <!-- hoge.○○.co.jp--> <Host name="hoge.○○.ne.jp" debug="0" unpackWARs="true" autoDeploy="true"> <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/> <!-- test Project Context --> <Context path="" docBase="/home/hoge/public_html" debug="0" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_std_log." suffix=".txt" timestamp="true"/> </Context> </Host> ■httpd.confの設定 ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" Directory "/usr/local/apache2/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi .pl <VirtualHost 192.168.xxx.xxx> ServerName hoge.○○.ne.jp DocumentRoot /home/hoge/public_html ScriptAlias /cgi-bin/ "/home/hoge/public_html/cgi-bin/" </VirtualHost> ■workers2.properties [uri:hoge.○○.ne.jp/*] info=Map http://hoge.○○.ne.jp/ よろしくお願いします | ||||||||
|
投稿日時: 2004-02-03 10:21
JJさんはじめまして。
少し前に同じようなレスがありますが・・・ httpd.confの <VirtualHost 192.168.xxx.xxx> の前の行に NameVirtualHost 192.168.xxx.xxx:80 と書かないといけないと思いますよ。 | ||||||||
|
投稿日時: 2004-02-03 14:01
ちば様 ご回答ありがとうございます。
「NameVirtualHost 192.168.xxx.xxx:80」 はすでに設定済みです。 「NameVirtualHost 192.168.xxx.xxx」でも試しましたが、 動作は変わらないようです。 apacheのみでのバーチャル設定の経験はあるのですが、 今回は、Tomcatとapacheが連携しています。 htmlとjspファイルは問題なく動作しますが、 バーチャルでのCGIのみ動かない。 動かないというよりも、ページが見つかりませんと出ます。 (デフォルトの場所では動きます) よろしくお願いします | ||||||||
|
投稿日時: 2004-02-03 21:07
こんにちわっ! 水無月 遊々です。
CGIなのでたぶん、apache単体の問題だと思います。 気になるのは「Options None」の部分ですね。 「Options ExecCGI」だと思うのですが…。 VirtualHostの設定をコメントアウトしてCGIが動作するか 確認してみてはいかがでしょう?^^; | ||||||||
|
投稿日時: 2004-02-03 22:05
JJさん、はじめまして。
よろしくお願いします。ドキドキ。 水無月 遊々さんの
も、あると思いますが、workers2.propertiesの設定
で、このホストへのアクセスを全てtomcatに飛ばしてるのも気になります。 これでは、apacheの設定をしても、apacheが処理する前にtomcatに飛ばされて、 tomcatがCGIを処理できない、となるような気がします。 [uri:hoge.○○.ne.jp/*.jsp] とか、tomcatが処理すべきファイルだけを飛ばすようにしたらいいのではないでしょうか? | ||||||||
|
投稿日時: 2004-02-03 22:26
ども、遊々です。よろしくおねがいしまふ。m(..)m
仰るとおりですね^^; 昔、workerのマッピングで「hoge.jp/servlet/*」とかやったのですが、チェックした際に「/servlet/」配下にあるテスト用htmlが丸見えになっていて青くなったことがあります(爆) その後、「hoge.jp/servlet/*.class」と変更したのはいうまでもありません(笑) そうそう、apacheのアクセス制限もスルーされてしまうんですよね…^^; 知らないと結構焦るかも…。 | ||||||||
|
投稿日時: 2004-02-03 22:58
遊々さん、よろしくお願いします。
#servlet用のURLって、.classまでいるんでしたっけ?と思いつつ・・・(忘れちまったぃ!) それで、僕の場合、 [uri:hoge.○○.ne.jp/*.do] とかやって、必ずservletをマッピングするようにしています。 #.doにするのはstruts風!?余り詳しくないですが・・・。 他には、POSTを受け取るやつは、 *.post という名前にマッピングしてました。 例えば、bbs.postとか。 #関係ないですけど、さっきのが初投稿(ドキドキ)だったんですけど、 #デビュー日が2003/01/30になってる!?それとも初投稿日というわけではない? | ||||||||
|
投稿日時: 2004-02-04 12:02
こんにちわっ! 遊々です(^^)
よろしくです〜♪
…いらないです(爆)。なんか、JAVAっぽくてかっこよかったのでとりあえず、web.xmlのマッピングの際につけてみました(笑) こーんな感じで。 --------------------------web.xml------------------------------------ <servlet> <servlet-name>HogeHoge</servlet-name> <servlet-class>HogeHoge</servlet-class> </servlet> <!-- Killed Invoker <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> --> <servlet-mapping> <servlet-name>HogeHoge</servlet-name> <url-pattern>/servlet/HogeHoge.class</url-pattern> </servlet-mapping> --------------------------web.xml------------------------------------ …ですが、本当はclassって使わない方がいいんでしょうね。理由は「/servlet/」パスが実在したときに、マッピングされていない「*.class」がダウンロードされてしまうからなんですが^^; セキュリティー面からは使われない識別子、たとえば「*.cls」とかにして、web.xml上でマッピング…がベストなのかな? そういった意味では「*.post」って良さそうですね(^^)
登録した日じゃないかぁ…たぶん(笑) |