Tomcatから既存 CGIを呼び出す方法

事前環境

・既存 CGIの保管場所

 /var/www/cgi-bin

1.Apache の設定

コンテキストパス「/cgi-bin/」を Tomcatへ転送する設定を行う.
環境に応じた設定ファイルを編集する.

 mod_jk.confの場合の追加設定

JkMount    /cgi-bin/* ajp13

 proxy_ajp.confの場合の追加設定

ProxyPass /cgi-bin/    ajp://localhost:8009/cgi-bin/

2.CGI呼び出しサーブレットの準備

サーブレットを有効化する

cd ${CATALINA_HOME}/server/lib
ln -s servlets-cgi.renametojar servlets-cgi.jar 

3.Webアプリケーションの構築

・ファイルとディレクトリの準備

mkdir ${CATALINA_HOME}/webapps/cgi-bin/
mkdir ${CATALINA_HOME}/webapps/cgi-bin/WEB-INF/

  既存 CGIへのシンボリックリンクを作成する

cd ${CATALINA_HOME}/webapps/cgi-bin/WEB-INF/
ln -s /var/www/cgi-bin/ .

・Webアプリケーションの設定

 ${CATALINA-HOME}/webapps/ROOT/WEB-INF/web.xmlを作成する

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">

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

    <servlet-mapping>
        <servlet-name>cgi</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

4.サービスの再起動

/sbin/service tomcat5 restart
/sbin/service httpd restart



---
update at 2018/03/02 22:04:51

※注:当サイトは特定環境において確認できた事象のみを記述しています。他の環境での動作は一切保証しません。