Friday, March 2, 2007

TOMCAT INSTALLATION AND CONFIGURATION

Introduction

Apache Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. The Java Servlet and JavaServer Pages specifications are developed by Sun under the Java Community Process.

Packages required

Java 2 SDK, Standard Edition v1.4.1-01 http://www.blackdown.org/java-linux/java-linux-d2.html

Ant 1.6.5 http://ant.apache.org/

JavaBeans Activation Framework http://java.sun.com/products/javabeans/glasgow/jaf.html

Javamail http://java.sun.com/products/javamail/

jakarta-tomcat-5.X http://jakarta.apache.org/site/downloads/downloads_tomcat-5.cgi

Installing Java 2 SDK

Untar/unzip j2sdk package

$cp j2sdk1.4.1 /usr/local/

$ln –s j2sdk1.4.1 j2sdk

set JAVA_HOME

$export JAVA_HOME=/usr/local/j2sdk

add PATH for java binary

$export PATH=$PATH:$JAVA_HOME/bin

verify javac command gives some output

root@tux:~# javac

Usage: javac

where possible options include:

-g Generate all debugging info

-g:none Generate no debugging info

-g:{lines,vars,source} Generate only some debugging info

Installing ANT

Untar ant-.tar.gz by

$tar xvzf ant-.tar.gz

move untared directory this to /usr/local/ant

$mv ant- /usr/local/ant

set ANT_HOME

export ANT_HOME=/usr/local/ant

add PATH for ant binary

export PATH=$PATH:$ANT_HOME/bin

verify ant binary is on PATH

root@tux:~# ant

Buildfile: build.xml does not exist! (don’t worry about this message, this was just to check ant in on path or not)

Installing JavaBeans Activation Framework

$unzip jaf-.zip

$cd jaf-

copy activation.jar to /usr/local/j2sdk/lib

$cp activation.jar /usr/local/j2sdk/lib

set CLASSPATH for this jar

$export $CLASSPATH=/usr/local/j2sdk/lib/activation.jar

Installing Javamail

$unzip javamail-.zip

$cd javamail-

copy mail.jar to /usr/local/j2sdk/lib

$cp mail.jar /usr/local/j2sdk/lib

set CLASSPATH for this jar

export $CLASSPATH=$CLASSPATH:/usr/local/j2sdk/lib/mail.jar

All set for tomcat

Just again verify all environment variables

$echo $JAVA_HOME

$echo $ANT_HOME

$echo $PATH

$echo $CLASSPATH

now we have two options to install tomcat

1. using source

2. using binary

Tomcat Installation from source

Untar source

$tar xvzf jakarta-tomcat-5.x.x-src.tar.gz

$cd jakarta-tomcat-5.x.x

start building source

this build process is controlled by build.properties

add this content to it:
# ----- Proxy setup -----
# Uncomment if using a proxy server.
#proxy.host=proxy.domain
#proxy.port=8080
#proxy.use=on

# ----- Default Base Path for Dependent Packages -----
# Replace this path with the directory path where
# dependencies binaries should be downloaded.
base.path=/usr/share/java

$ant build

Buildfile: build.xml

check.source:

check.source.depends:

once this is done without any errors, copy build to appropriate location

$cp jakarta-tomcat-5.x.x/jakarta-tomcat-5/build /usr/local/tomcat

Installation done from source

Tomcat Installation from binary

Download and untar jakarta-tomcat-5.x.x.tar.gz

$tar xvzf jakarta-tomcat-5.x.x.tar.gz

move untared directory to /usr/local/tomcat

$mv jakarta-tomcat-5.x.x /usr/local/tomcat/

Installation done using binary.

Configuring Tomcat

Optionally set CATALINA_HOME to /usr/local/tomcat/

$export $CATALINA_HOME=/usr/local/tomcat/

make changes in configuration, go to conf dir

$cd /usr/local/tomcat/conf

to change port of tomcat edit server.xml Connector port="8080" tag

you can add various roles and assign these roles to different users by making changes in tomcat-users.xml

rolename="tomcat"/>

rolename="role1"/>

rolename="manager"/>

rolename="admin"/>

admin,manager"/>

you can write a init script for tomcat startup/shutdown

#!/bin/sh

export JAVA_HOME=/usr/local/j2sdk

export PATH=$PATH:/usr/local/j2sdk/bin/

case "$1" in

start)

echo -n "Starting tomcat: "

/usr/local/tomcat/bin/startup.sh

;;

stop)

echo -n "Shutting down tomcat: "

/usr/local/tomcat/bin/shutdown.sh

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

exit 0

copy this content to /etc/init.d/tomcat.server

give execute permission

chmod +x /etc/init.d/tomcat.server

on debian do

$update-rc.d tomcat.server defaults

Testing setup

Start tomcat

root@tux:~# /etc/init.d/tomcat.server start

Starting tomcat: Using CATALINA_BASE: /usr/local/tomcat

Using CATALINA_HOME: /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JAVA_HOME: /usr/local/jdk

Check in process list for successful startup

1834 pts/6 S 0:15 /usr/local/jdk/bin/java -Djava.endorsed.dirs=/usr/local/tomcat/common/endorsed -classpath /usr/loc

1835 pts/6 S 0:00 /usr/local/jdk/bin/java -Djava.endorsed.dirs=/usr/local/tomcat/common/endorsed -classpath /usr/loc

1836 pts/6 S 0:01 /usr/local/jdk/bin/java -Djava.endorsed.dirs=/usr/local/tomcat/common/endorsed -classpath /usr/loc

also verify it its listening on port specified in server.xml

root@tux:~# netstat -nap | grep java

tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 11507/java

Shutdown tomcat

root@tux:~# /etc/init.d/tomcat.server stop

Shutting down tomcat: Using CATALINA_BASE: /usr/local/tomcat

Using CATALINA_HOME: /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JAVA_HOME: /usr/local/jdk

Next open a browser and type http://:

For eg http://machine:8080

You will see tomcat page

You can admin tomcat from http://:/admin

eg

http://machine:8080/admin

manager url http://

give username/password specified in tomcat-users.xml with admin/manager role

like

rolename="manager"/>

rolename="admin"/>

admin,manager"/>

No comments: