Tomcatから既存 CGIを呼び出す方法
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>
---
update at 2018/03/02 22:04:51
※注:当サイトは特定環境において確認できた事象のみを記述しています。他の環境での動作は一切保証しません。