- PR -

Apache2+Tomcat5.5で、CGIを実行

1
投稿者投稿内容
くろ
常連さん
会議室デビュー日: 2004/08/17
投稿数: 42
投稿日時: 2006-02-02 01:57
お世話になっております。

Apache2とTomcat5.5を連携させて、Servlet,JSPは正常に動作をしております。

その連携させた環境で、CGIプログラムも実行させたいのですが、
プラウザからCGIプログラムにアクセスすると、HTTPステータスが404になってしまい
お力添えをお借りしたいのですが。

OS:FC4

Tomcatの方では、以下の設定を行いました。

1)
$TOMCAT_HOME/server/libのservlets-cgi.renametojarを
servlets-cgi.jarとリネーム

2)
$TOMCAT_HOME/conf/web.xmlの以下の部分をコメントを外しました

<servlet>
    <servlet-name>cgi</servlet-name>
    <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
    <init-param>
     <param-name>debug</param-name>
     <param-value>6</param-value>
    </init-param>
    <init-param>
     <param-name>cgiPathPrefix</param-name>
     <param-value>WEB-INF/cgi</param-value>
    </init-param>
     <load-on-startup>5</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>cgi</servlet-name>
    <url-pattern>/cgi-bin/*</url-pattern>
  </servlet-mapping>

3)
Apache2のhttpd.confには、以下のように設定しました

<Directory "/home/*/web/WEB-INF/cgi">
  AllowOverride None
  Options Includes ExecCGI
  Order allow,deny
  Allow from all
</Directory>

上記の設定を行い、WEB-INF/cgiにあるCGIプログラムにアクセスすると
404になってしまいます。

ドキュメントルートは、/home/hoge/web になっており、
workers2.propertiesには、[uri:/*]という形で設定を行っております。

申し訳ありませんが、お力添えをお願い致します。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2006-02-02 20:07
TomcatでCGIを動かしたことがないので見当外れかもしれませんが、
まずはmod_jk2を通さない場合にどうなるか確認された方がいいと思います。

1. /WEB-INF以下なのでTomcatがアクセス拒否した
2. Tomcatの設定がそもそも間違っている
3. Apache2のCGIハンドラが先に404と扱ってしまった

といったところでしょうか。

#3はApache側の挙動に詳しくないので大嘘な可能性大。

ところで、ApacheではなくTomcatでCGIを動かす理由って何でしょう?
そんな設定にする必要なさそうだなと不思議に思ったもので。。
Filterでインターセプタ的な挙動をさせたいとか?
しましま
常連さん
会議室デビュー日: 2005/01/08
投稿数: 41
投稿日時: 2006-02-02 20:29
引用:
プラウザからCGIプログラムにアクセスすると、HTTPステータスが404になってしまい



まず、ブラウザからどのようなURLでアクセスしたのか確認したいです。
「http://localhoat/cgi-bin/test-cgi」
とかですか?


[ メッセージ編集済み 編集者: しましま 編集日時 2006-02-02 20:29 ]
くろ
常連さん
会議室デビュー日: 2004/08/17
投稿数: 42
投稿日時: 2006-02-03 00:05
しましまさん

ブラウザからは、
http://hogehoge/cgi-bin/hello.cgi

というようにアクセスしました。

CGIプログラムの権限は、755になっております。

TomcatでCGIプログラムを実行したい理由としましては、
/home/hoge/web
をドキュメントルートとしてあり、そのディレクトリ配下に.jspファイルなどがあります。
そして、workers2.propertiesに
[uri:/*]
と指定してしまっているため、TomcatじゃないとCGIプログラムが実行できないんじゃないか
と思っておりますので。。。

http://hoge/aaa.jsp も、 http://hoge/cgi-bin も
/home/hoge/webに行ってしまうので


[ メッセージ編集済み 編集者: くろ 編集日時 2006-02-03 00:46 ]
くろ
常連さん
会議室デビュー日: 2004/08/17
投稿数: 42
投稿日時: 2006-02-03 00:51
くろです

お蔭様で、TomcatにてCGIプログラムを実行することが出来ました。

Apacheのhttpd.confの中のCGIに関する部分を
コメントアウトしましたら、WEB-INF/cgi内で実行することが出来ました
1

スキルアップ/キャリアアップ(JOB@IT)