インストールって言っても tar するだけの超簡単。
http://jakarta.apache.org/tomcat/ から
jakarta-tomcat-4.1.30.tar.gz を get します。
get したファイルを、/usr/local に展開します。
eden# tar zxvf jakarta-tomcat-4.1.30.tar.gz -C /usr/local/
中身はこんな感じ
eden# cd /usr/local/jakarta-tomcat-4.1.30/
eden# ls
LICENSE bin shared
README.txt common temp
RELEASE-NOTES-4.1.txt conf webapps
RELEASE-PLAN-4.1.txt logs work
RUNNING.txt server
eden# cd bin/
eden# ls
bootstrap.jar jasper.bat shutdown.sh
catalina.bat jasper.sh startup.bat
catalina.sh jspc.bat startup.sh
commons-daemon.jar jspc.sh tomcat-jni.jar
cpappend.bat setclasspath.bat tomcat.exe
digest.bat setclasspath.sh tool-wrapper.bat
digest.sh shutdown.bat tool-wrapper.sh
気になるのは、時々改行が CR+LF のファイルがあること。
eden# pwd
/usr/local/jakarta-tomcat-4.1.30/bin
eden# ./startup.sh
Using CATALINA_BASE: /usr/local/jakarta-tomcat-4.1.30
Using CATALINA_HOME: /usr/local/jakarta-tomcat-4.1.30
Using CATALINA_TMPDIR: /usr/local/jakarta-tomcat-4.1.30/temp
Using JAVA_HOME: /usr/local/diablo-jdk1.3.1
eden#
Webブラウザから http://<IPアドレス>:8080/ を設定すると、以下のようなページが表示されたらOK!
止める時は次のようにします。
eden# ./shutdown.sh
Using CATALINA_BASE: /usr/local/jakarta-tomcat-4.1.30
Using CATALINA_HOME: /usr/local/jakarta-tomcat-4.1.30
Using CATALINA_TMPDIR: /usr/local/jakarta-tomcat-4.1.30/temp
Using JAVA_HOME: /usr/local/diablo-jdk1.3.1
eden#
環境変数(.cshrc) を以下のようにします。
set path = (/usr/local/diablo-jdk1.3.1/bin /sbin /bin /usr/sbin /usr/bin /usr/games /usr/l
ocal/sbin /usr/local/bin /usr/X11R6/bin $HOME/bin)
setenv JAVA_HOME /usr/local/diablo-jdk1.3.1
setenv CLASSPATH .:${JAVA_HOME}/lib/classes.zip:/usr/local/jakarta-tomcat-4.1.30/common/l
ib/servlet.jar
サーブレットを作成します。
eden# cat HogeServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HogeServlet extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws IOException, ServletException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello Servlet Hogehoge</title>");
out.println("</head>");
out.println("<body bgcolor=#ffffff>");
out.println("<h1>Hello Servlet</h1>");
out.println("hogehoge");
out.println("</body>");
out.println("</html>");
}
}
コンパイルします。
eden# javac HogeServlet.java
eden#
新しくサーブレットディレクトリを置く場合は登録する必要があるので、今回は examples ディレクトリ以下に仮置き。
eden# cp HogeServlet.class /usr/local/jakarta-tomcat-4.1.30/webapps/examples/WEB-INF/clas
ses/
eden#
http://<IPアドレス>:8080/examples/servlet/HogeServlet を開くと、こんな感じに表示されると思います。
では、examples ディレクトリではない新しいディレクトリを作成しましょう。
新しいディレクトリを作成するということは、 tomcat にとって新しいアプリケーションという意味になりますので、
tomcat に登録する必要があります。
examples ディレクトリを参照して hoge ディレクトリを作成します。
eden# pwd
/usr/local/jakarta-tomcat-4.1.30/webapps
eden# ls
ROOT examples tomcat-docs
admin.xml manager.xml webdav
eden# ls examples/
WEB-INF images jsp servlets
eden# ls examples/WEB-INF/
classes jsp web.xml
eden# mkdir hoge
eden# cd hoge/
eden# mkdir WEB-INF
eden# cd WEB-INF/
eden# mkdir classes
eden# cd classes/
eden# cp ../../../examples/WEB-INF/classes/HogeServlet.class .
アプリケーションが jar を必要とする場合は、WEB-INF 内に lib ディレクトリを作成します。
web.xml を confディレクトリからコピーして編集します。
eden# pwd
/usr/local/jakarta-tomcat-4.1.30/conf
eden# ls
catalina.policy server.xml
jk2.properties tomcat-users.xml
server-noexamples.xml.config web.xml
eden# cp web.xml ../webapps/hoge/WEB-INF/
eden#
eden# cat ../webapps/hoge/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/dtd/web-app_2_3.dtd">
<web-app>
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
</web-app>
eden#
この servlet-mapping の設定をしないとアクセスできません。
confディレクトリ内のweb.xmlを編集してしまうと tomcat 全体に影響しますので、アプリケーション毎がいいでしょう。
次に、tomcat に hoge を登録します。conf ディレクトリ内の server.xml を開いて、Context を追加します。
<!-- Tomcat Root Context -->
<!--
<Context path="" docBase="ROOT" debug="0"/>
-->
<!-- Hogehoge Context -->
<Context path="/hoge" docBase="hoge" debug="0"
reloadable="true" crossContext="true">
</Context>
<!-- Tomcat Examples Context -->
<Context path="/examples" docBase="examples" debug="0"
reloadable="true" crossContext="true">
tomcat を再起動して、新しいURLで表示させてみましょう。
できたできた。
WebDAVというと、Apache に mod_dav と mod_dav_fs を入れるのが一般的ですが、
Tomcat には最初から WebDAV が実装されています。
初期設定では、だれでもアクセスできて読み込み専用です。
@IT の 「第11回 TomcatでWebDAVを実現」 を参照にして、使えるようにします。
設定を変更するファイルは、以下の webdav の web.xml です。改行が CR+LF なので、qkc で変換。
eden# pwd
/usr/local/jakarta-tomcat-4.1.30/webapps/webdav/WEB-INF
eden# ls -la
total 16
drwxr-xr-x 2 root wheel 512 Jul 8 21:52 .
drwxr-xr-x 3 root wheel 512 Jul 8 21:52 ..
-rw-r--r-- 1 root wheel 11659 Jan 25 22:22 web.xml
eden#
eden# cp web.xml web20040708.xml
eden# qkc -u web.xml
Converted: web.xml (Ascii)
eden#
- ユーザ認証
- 太赤字のコメントを外します。
<!-- ================ Security Constraints for Testing =============== -->
<!--
<security-constraint>
<web-resource-collection>
<web-resource-name>The Entire Web Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>tomcat</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Tomcat Supported Realm</realm-name>
</login-config>
<security-role>
<description>
An example role defined in "conf/tomcat-users.xml"
</description>
<role-name>tomcat</role-name>
</security-role>
-->
</web-app>
アクセスできるユーザは、role-name が tomcat に属しているユーザとなります。
初期状態では、以下のようにユーザ名が tomcat でパスワードが tomcat になっています。
eden# pwd
/usr/local/jakarta-tomcat-4.1.30/conf
eden# ls -la tomcat-users.xml
-rw-r--r-- 1 root wheel 310 Jul 8 23:49 tomcat-users.xml
eden# cat tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="role1"/>
<role rolename="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
</tomcat-users>
eden#
ユーザ名に kenz 、パスワードに hogehoge と追加しました。
eden# pwd
/usr/local/jakarta-tomcat-4.1.30/conf
eden# ls -la tomcat-users.xml
-rw-r--r-- 1 root wheel 310 Jul 8 23:49 tomcat-users.xml
eden# cat tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="role1"/>
<role rolename="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="kenz" password="hogehoge" roles="tomcat"/>
</tomcat-users>
eden#
tomcat を再起動します。
このようにユーザ認証が表示されます。
- 書き込み可能
- 太赤字のコメントを外します。
<!-- Uncomment this to enable read and write access -->
<!--
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
-->
tomcat を再起動します。
ファイルをドラッグアンドドロップすることで書き込むことができますが、
フォルダを右クリックして「新しいフォルダ」を作ることができません。
日本語がダメなんですね。
MacOSX の場合は、Finder から「移動」「サーバへ接続」を選択することで接続できます。
- 日本語ファイル名を使えるようにする
-
日本語ファイル名が使えないので、Ja-Jakarta Projectの横田健彦さんが開発した
「Tomcat4のWebDAVアプリケーションの日本語ファイル名対応版」を
インストールしてみたけれど、日本語が化けてしまいました。