Tomcat覚え書き^2

表紙][WindowsメモPalm覚え書きWARPメモ][ApacheメモTomcatメモ][bottom

最終更新: 05.12/23

以下はPerlやRubyで書かれたCGIをTomcat 5.5で動かすためのTipsです。Java JDK/SDK と Tomcat は導入済みで,既に何かwebサーヴィスが動いているところにCGIを追加する想定です。ここでもShift_JISを前提にしています。

Perl・RubyをWindows上で利用するためにActivePerl・ActiveScriptRubyを使用します。


1. インストール

x:
├Java
│├jdk1.5.0_06
│└jre1.5.0_06
│ └lib
│  └ext
│   └mysql-connector-java-3.1.12-bin.jar

├MySQL
│└MySQL Server 4.1
│ ├bin
│ │├libmySQL.dll
│ │└MySQLInstanceConfig.exe
│ ├data
│ │└webアプリ
│ │ └*.frm
│ └my.ini

├Perl
│└bin
│ └perl.exe

├Ruby
│└bin
│ └ruby.exe

└Tomcat
 ├conf
 │└server.xml
 ├server
 │└lib
 │ └servlets-cgi.jar
 ├webapps
 │├cgiアプリ
 ││└WEB-INF
 ││ ├cgi
 ││ │├cgiアプリ.cgi
 ││ │├cgiアプリ.pl
 ││ │└cgiアプリ.rb
 ││ ├classes
 ││ │└filters
 ││ │ └SetCharacterEncodingFilter.class
 ││ └web.xml
 │├jsp-examples
 ││└WEB-INF
 ││ └classes
 ││  └filters
 ││   └SetCharacterEncodingFilter.class
 │└webアプリ
 │ ├logs
 │ ├WEB-INF
 │ │└classes
 │ │ └webアプリ.properties
 │ ├*.css
 │ ├*.js
 │ ├*.jsp
 │ └*.xml
 └work
  └catalina
   └localhost
    └webアプリ
     └org
      └apache
       └jsp
        ├*.class
        └*.java

1.1 ActivePerlの導入

ActiveStateのサイトからActivePerlをダウンロードする。レジストはSkipして良い。

Download ActivePerl

ダウンロードしたexeをつついてインストール開始。

ここで環境変数を設定する。[コントロールパネル][システム][詳細]を辿って[環境変数]を開け,以下を設定。

Windowsを再起動してコマンドプロンプトを開け,いきなり以下を打ってversion番号が表示されればOK。

perl -v

1.2 ActiveScriptRubyの導入

COM Meets RubyのサイトからActiveScriptRubyをダウンロードする。

ダウンロードしたexeをつついてインストール開始。

ここで環境変数を設定する。[コントロールパネル][システム][詳細]を辿って[環境変数]を開け,以下を設定。

Windowsを再起動して[スタート][Ruby 1.8][ruby console]を選択し,以下をいきなり打ってヴァージョンが表示されればOK。

ruby -version

2. 環境設定

2.1 webappsの設定

2.1.1 CGIアプリ用ディレクトリの作成

%TOMCAT_HOME%/webapps/ 下に cgiアプリ/WEB-INF/cgi/ ディレクトリを作成する。ここにCGIの本体を置くことになる。異なる言語のCGIは同居させないほうが良さげ。

2.1.2 servlets-cgi.jarの設置

%TOMCAT_HOME%/server/lib/servlets-cgi.renametojar を servlets-cgi.jar にリネイムする。

2.1.3 web.xmlの設置

%TOMCAT_HOME%/webapps/cgiアプリ/WEB-INF/ に以下のような web.xml を設置する。

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>

<!-- Shift_JIS Filter -->
    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>Shift_JIS</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

<!-- Invoker Servlet -->
    <servlet>
        <servlet-name>invoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
<!-- JSP Servlet -->
    <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>

<!-- CGI Servlet -->
    <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>


<!-- Invoker Servlet-Mapping -->
    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

<!-- JSP Servlet-Mapping -->
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>

<!-- CGI Servlet-Mapping -->
    <servlet-mapping>
        <servlet-name>cgi</servlet-name>
        <url-pattern>/cgi-bin/*</url-pattern>
    </servlet-mapping>
</web-app>

CGIだけならInvokerやJSPに関する記述は不要。

Ruby(Perl以外)の場合は CGIの<servlet>内に ruby.exe の場所を指定する。TomcatはPerlがデフォルトらしい。

<!-- CGI Servlet -->
    <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>
        <init-param>
          <param-name>executable</param-name>
          <param-value>x:/Ruby/bin/ruby.exe</param-value>
        </init-param>
         <load-on-startup>5</load-on-startup>
    </servlet>

ここで Windowsサービスの Apache Tomcat を再起動する。

2.1.4 CGI本体の設置

%TOMCAT_HOME%/webapps/cgiアプリ/WEB-INF/cgi/ にCGIの実行ファイルを設置する。CGI中のCharacter-setはShift_JISに調整する。

ブラウザを立ちあげて CGI を起動してみる。

http://localhost/cgiアプリ/cgi-bin/cgiアプリ.pl
http://localhost/cgiアプリ/cgi-bin/cgiアプリ.rb
http://localhost/cgiアプリ/cgi-bin/cgiアプリ.cgi

以上でインストールとセットアップはおしまい。


表紙][WindowsメモPalm覚え書きWARPメモ][ApacheメモTomcatメモ][TOP
Valid XHTML 1.0 Transitional
© (c) Copyright 2005; nii. n All Rights Reserved.
counter