I've finally managed to get apache/tomcat running successfully  on a redhat 
7.1 box (with stock kernel). Since I've seen several posts asking about this 
so I'll post a quick how-to.

Install Sun's JavaTM 2 Standard Edition, 1.3.1 RC2 
from: http://java.sun.com/j2se/1.3/download-linux.html

Install tomcat (I used Jakarta-Tomcat 3.2.1) 
Setup your classpaths, and environment in /etc/profile
Here's mine:
#Java Environment
JAVA_HOME=/usr/local/java
export JAVA_HOME

#Tomcat Environment
TOMCAT_HOME=/usr/local/tomcat
export TOMCAT_HOME

#Set Classpaths for java servlets
CLASSPATH=$TOMCAT_HOME/lib/servlet.jar:$JAVA_HOME/lib/:$TOMCAT_HOME/lib:$TOMCAT_HOME/classes:.
export CLASSPATH

Create a directory named classes in your $TOMCAT_HOME directory

Copy $JAVA_HOME/lib/tools.jar to $TOMCAT_HOME/classes

Change to the $TOMCAT_HOME/classes directory

Expand with the command "jar xvf tools.jar"

Make sure you've added $TOMCAT_HOME/classes to you classpath as I did above

You should be able to start tomcat as a stand alone server at this point by 
running the startup.sh script in $TOMCAT_HOME/bin

Test the server by connecting to http://localhost:8080

Shutdown tomcat using the $TOMCAT_HOME/bin/shutdown.sh script

If all works well all that remains is to integrate apache and tomcat
( if not figure out whats wrong with these directions ;-0 )

Shutdown Apache

Follow the instructions at: 
http://jakarta.apache.org/tomcat/jakarta-tomcat/src/doc/mod_jk-howto.html

The only place I deviated from the instructions was:
Move the original $TOMCAT_HOME/conf/mod_jk.conf to 
$TOMCAT_HOME/conf/mod_jk.conf-orig as a backup

Copy $TOMCAT_HOME/conf/mod_jk.conf -auto to $TOMCAT_HOME/conf/mod_jk.conf 

Change the line --> LoadModule jk_module libexec/mod_jk.so 
to read --> LoadModule jk_module /usr/lib/apache/mod_jk.so ( or wherever you 
put it!)

Add the following to your /etc/httpd/conf/httpd.conf:
###############################################################
#                                                                           #
#                       Tomcat support                                      #
###############################################################

Include /usr/local/jakarta-tomcat-3.2.1/conf/mod_jk.conf

I also changed /etc/rc.d/init.d/httpd to start tomcat as well. Here's my 
script:
#!/bin/bash
#
# Startup script for the Apache Web Server
# Modified to start apache with tomcat
# by Neil Jolly <[EMAIL PROTECTED]>
# chkconfig: - 85 15
# description: Apache is a World Wide Web server.  It is used to serve \
#              HTML files and CGI.
# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /etc/httpd/conf/access.conf
# config: /etc/httpd/conf/httpd.conf
# config: /etc/httpd/conf/srm.conf

# Set path for java and tomcat

#Java Environment
JAVA_HOME=/usr/local/java
export JAVA_HOME

#Tomcat Environment
TOMCAT_HOME=/usr/local/tomcat
export TOMCAT_HOME
CLASSPATH=$TOMCAT_HOME/lib/servlet.jar:$JAVA_HOME/lib/:$TOMCAT_HOME/lib:$TOMCAT_HOME/classes:.
export CLASSPATH

# Source function library.
. /etc/rc.d/init.d/functions

# This will prevent initlog from swallowing up a pass-phrase prompt.
INITLOG_ARGS=""

# Source additional OPTIONS if we have them.
if [ -f /etc/sysconfig/apache ] ; then
        . /etc/sysconfig/apache
fi

# Path to the httpd binary.
httpd=/usr/sbin/httpd
prog=httpd
RETVAL=0

# Change the major functions into functions.
moduleargs() {
        moduledir=/usr/lib/apache
        moduleargs=`
        /usr/bin/find ${moduledir} -type f -perm -0100 -name "*.so" | awk '{\
                gsub(".*/","");\
                gsub("^mod_","");\
                gsub("^lib","");\
                gsub("\.so$","");\
                print "-DHAVE_" toupper($0)}'`
        echo ${moduleargs}
}
start() {
        echo -n $"Starting $prog: "
        /usr/local/tomcat/bin/startup.sh&
        daemon $httpd `moduleargs` $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
        return $RETVAL
}
stop() {
        echo -n $"Stopping $prog: "
        /usr/local/tomcat/bin/shutdown.sh&
        killproc $httpd
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status $httpd
        ;;
  restart)
        stop
        start
        ;;
  reload)
        echo -n $"Reloading $prog: "
        killproc $httpd -HUP
        RETVAL=$?
        echo
        ;;
  condrestart)
        if [ -f /var/run/httpd.pid ] ; then
                stop
                start
        fi
        ;;
  *)
        echo $"Usage: $prog {start|stop|restart|reload|condrestart|status}"
        exit 1
esac

exit $RETVAL


Restart your new integrated apache/tomcat server with /etc/rc.d/init.d/httpd 
start

Test your new server with your browser by accessing http://localhost/examples 
and running some of the jsp scripts and servlets.

Sorry for the long post, but hope it's helpful (and hope I remembered 
everything).

Neil

Reply via email to