Friday, August 04, 2006


Install TomCat 5.5.17 with Apache Portable Runtime 1.2.7 on Linux



Tomcat can use the Apache Portable Runtime to provide superior scalability, performance, and better integration with native server technologies. The Apache Portable Runtime is a highly portable library that is at the heart of Apache HTTP Server 2.x. APR has many uses, including access to advanced IO functionality (such as sendfile, epoll and OpenSSL),OS level functionality (random number generation, system status, etc), and native process handling
(shared memory, NT pipes and Unix sockets).View for details:
http://tomcat.apache.org/tomcat-5.5-doc/apr.html


Install Apache Portable RunTime 1.2.7 and openssl-0.9.8b on the box (CentOS 4.2).

APR Source directory - /usr/local/src/apr-1.2.7

APR Target directory - /usr/local/apr

OPEN SSL Target directory - /usr/local/ssl

Account "tomcat" has the same .bash_profile as in [1].

Tomcat Server version 5.5.17 has been installed by "tomcat" as usual.



# su - tomcat




Compile $CATALINA_HOME/bin/jsvc :-



cd $CATALINA_HOME/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
autoconf
./configure
make
cp jsvc ..
cd ..




Proceed with compiling libraries for APR:-



$ cd $CATALINA_HOME/bin/tomcat-native-1.1.3/jni/native
$ sh buildconf --with-apr=/usr/local/src/apr-1.2.7
$ ./configure --with-apr=/usr/local/apr --with-ssl=/usr/local/ssl
$ make
$ cd .libs
[tomcat@ServerCentOS4U2 .libs]$ pwd
/home/tomcat/apache-tomcat-5.5.17/bin/tomcat-native-1.1.3/jni/native/.libs
[tomcat@ServerCentOS4U2 .libs]$ ls -l
total 1572
-rw-r--r-- 1 tomcat users 937506 Aug 4 15:47 libtcnative-1.a
lrwxrwxrwx 1 tomcat users 19 Aug 4 15:47 libtcnative-1.la -> ../libtcnative-1.la
-rw-r--r-- 1 tomcat users 990 Aug 4 15:47 libtcnative-1.lai
lrwxrwxrwx 1 tomcat users 22 Aug 4 15:47 libtcnative-1.so -> libtcnative-1.so.0.1.3
lrwxrwxrwx 1 tomcat users 22 Aug 4 15:47 libtcnative-1.so.0 -> libtcnative-1.so.0.1.3
-rwxr-xr-x 1 tomcat users 657270 Aug 4 15:47 libtcnative-1.so.0.1.3




Create as root startup script /etc/init.d/TomCatJsvc:-




# Script to start TomCat 5.5.17 as daemon with version 1.1.3 "tc" native support
# library for Apache Portable Runtime 1.2.7
# Variable CATALINA_OPTS provides the path to "tc" native library


JAVA_HOME='/home/tomcat/jdk1.5.0_06'
CATALINA_HOME='/home/tomcat/apache-tomcat-5.5.17'
CLASSPATH=$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-daemon.jar:$JAVA_HOME/lib/tools.jar
CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/home/tomcat/apache-tomcat-5.5.17/bin/tomcat-native-1.1.3/jni/native/.libs"
TOMCAT_USER=tomcat
TMPDIR=/var/tmp

RC=0

case "$1" in
start)

$CATALINA_HOME/bin/jsvc -user $TOMCAT_USER -home $JAVA_HOME -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$TMPDIR -Djava.awt.headless=true -outfile $CATALINA_HOME/logs/catalina.out -errfile $CATALINA_HOME/logs/catalina.err $CATALINA_OPTS -cp $CLASSPATH org.apache.catalina.startup.Bootstrap

RC=$?

[ $RC = 0 ] && touch /var/lock/subsys/tomcat
;;

stop)

PID=`cat /var/run/jsvc.pid`
kill $PID

RC=$?

[ $RC = 0 ] && rm -f /var/lock/subsys/tomcat /var/run/jsvc.pid
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit $RC




Enable Open SSL on TomCat 5.5.17 :-



# su - tomcat
$ cd $CATALINA_HOME/conf/
$ /usr/local/ssl/bin/openssl genrsa -des3 -out tomcatkey.pem 2048
$ /usr/local/ssl/bin/openssl req -new -x509 -key tomcatkey.pem -out tomcatcert.pem -days 1095




Changes have been done to $CATALINA_HOME/conf/server.xml:








To start server:-



# /etc/init.d/TomCatJsvc start




Snapshot of $CATLINA_HOME/logs/catalina.out at startup:






Snapshots of "https" connections to server through port 8443:-










References.
1.http://bderzhavets.blogspot.com/2006/08/running-tomcat-5.html

Tuesday, August 01, 2006


Running TomCat 5.5 as Linux Daemon



Perform standard Tomat 5.5.X server install by account "tomcat".
Compile as officially advised in [1] $CATALINA_HOME/bin/jsvc binary :-



cd $CATALINA_HOME/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
autoconf
./configure
make
cp jsvc ..
cd ..




To be succeed starting up TomCat's jsvc daemon with JDK 1.5
create as root script "/etc/init.d/TomCatJsvc",
compare it with daemon startup script suggested in [1]:-



JAVA_HOME='/home/tomcat/jdk1.5.0_06'
CATALINA_HOME='/home/tomcat/apache-tomcat-5.5.16'
CLASSPATH=$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-daemon.jar:$JAVA_HOME/lib/tools.jar
TOMCAT_USER=tomcat
TMPDIR=/var/tmp


RC=0

case "$1" in

start)

$CATALINA_HOME/bin/jsvc -user $TOMCAT_USER -home $JAVA_HOME -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$TMPDIR -Djava.awt.headless=true -outfile $CATALINA_HOME/logs/catalina.out -errfile $CATALINA_HOME/logs/catalina.err -cp $CLASSPATH org.apache.catalina.startup.Bootstrap

RC=$?

[ $RC = 0 ] && touch /var/lock/subsys/tomcat
;;

stop)

PID=`cat /var/run/jsvc.pid`
kill $PID

RC=$?

[ $RC = 0 ] && rm -f /var/lock/subsys/tomcat /var/run/jsvc.pid
;;

*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit $RC




Then run as root:-



# /etc/init.d/TomCatJsvc start




If "ps -ef|grep tomcat" output looks like:-




and $CATALINA_HOME/logs/catalina.out:-





then you should be fine with launching browser to http://localhost:8080.

For automatic startup/shutdown TomCat's daemon create 3 symbolic links:-



# ln -s /etc/init.d/TomCatJsvc /etc/rc5.d/S99TomCatJsvc
# ln -s /etc/init.d/TomCatJsvc /etc/rc0.d/K09TomCatJsvc
# ln -s /etc/init.d/TomCatJsvc /etc/rc6.d/K09TomCatJsvc




References

1.http://tomcat.apache.org/tomcat-5.5-doc/setup.html