This script is overkill but perhaps it will help someone. - Craig
#!/bin/sh ################################################# # This UNIX script installs the Tomcat servlet # # container on Mac OS X computer systems. # # - - - - - - - - - - - - - - - - - - - - - - - # # Make this script executable with: # # "chmod +x installTomcat.sh" # # and run as root: # # "sudo ./installTomcat.sh" # # - - - - - - - - - - - - - - - - - - - - - - - # # Last modified: Nov. 12, 2004 # ################################################# echo "=============================" echo "Tomcat installer for Mac OS X" echo "============================="
##################################### # Set trap to allow abort on signal # ##################################### trap 'echo "Ouch. Dude! Ya fragged me." 1>&2; exit' 1 2 3 15
###################################### # 1. Set up environmental variables. # ###################################### # ---------- # Set these: # ---------- TOMCAT_VERSION="5.5.4" TOMCAT_BASE="/usr/local"
# arbitrary manager for tomcat-users.xml file: TOMCAT_USER="somebody" TOMCAT_PASS="something"
# for setting permissions: USER="me" # Change to your user name! GROUP="wheel"
# where startup/shutdown scripts will be installed: USER_SCRIPT_DIR="/Users/"${USER}"/bin"
# ----------------------------- # and perhaps these (optional): # ----------------------------- # Note: if you want to install JMX, you must download and # install zip file in ${TOMCAT_BASE} before running script INSTALL_JMX="yes" JMX_ARC="jmx-1_2_1-scsl.zip" JMX_DIR="jmx-1_2_1-src"
# --------------------------
# but don't muck with these!
# --------------------------
JAVA_HOME="/Library/Java/Home"
JAVA_EXT="/Library/Java/Extensions"
TOMCAT_HOME=${TOMCAT_BASE}"/jakarta-tomcat-"${TOMCAT_VERSION}
CATALINA_HOME=${TOMCAT_HOME}
REMOTE_HOME="http://apache.edgescape.com/jakarta/tomcat-5/ v"${TOMCAT_VERSION}"/bin/jakarta-tomcat-"${TOMCAT_VERSION}
TOMCAT_USERS_FILE=${TOMCAT_HOME}"/conf/tomcat-users.xml"
JMX_FILE=${TOMCAT_BASE}/${JMX_ARC}
############################## # 2. Get rid of old version. # ############################## cd ${TOMCAT_BASE} if test -e ${TOMCAT_HOME}/bin; then echo "----------------------" echo "Saving old version ..." echo "----------------------" gnutar -cf - -C ${TOMCAT_HOME} . | gzip --best > oldTomcat.tar.gz echo "... done."
echo "---------------------" echo "Zapping old files ..." echo "---------------------" \rm -rf ${TOMCAT_HOME}/* rmdir ${TOMCAT_HOME} echo "... done." fi
############################# # 3. Download source files. # ############################# echo "-----------------------------------------------" echo "Downloading Tomcat binary files from Apache ..." echo "-----------------------------------------------" sudo curl ${REMOTE_HOME}.tar.gz -o tomcat.tar.gz sudo curl ${REMOTE_HOME}-compat.tar.gz -o compat.tar.gz sudo curl ${REMOTE_HOME}-admin.tar.gz -o admin.tar.gz echo "... done."
############################## # 4. Inflate Tomcat tarballs # ############################## echo "----------------------------------" echo "Expanding Tomcat archive files ..." echo "----------------------------------" sudo gnutar -xzvf tomcat.tar.gz sudo gnutar -xzvf compat.tar.gz sudo gnutar -xzvf admin.tar.gz
case "$INSTALL_JMX" in
[yY]|[yY][eE][sS]) # YES:
echo "You have elected to install Java Management Extensions (JMX RI)."
if test -e ${JMX_FILE}
then
echo "File '"${JMX_FILE}"' is available. Installing JMX..."
sudo unzip ${JMX_FILE}
sudo mv ${TOMCAT_BASE}/${JMX_DIR}/lib/*.jar ${TOMCAT_HOME}/common/endorsed/
else
echo "File '"${JMX_FILE}"' NOT found!"
echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"
echo "Please visit Sun Microsystem's Download Center at:"
echo " http://wwws.sun.com/software/communitysource/jmx/download.html"
echo "You will need to download version 1.2 or greater."
echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"
INSTALL_JMX="no"
fi
;;
[nN]|[nN][oO]) # NO:
echo "Java Management Extensions (JMX RI) NOT installed."
;;
*) # LAME ANSWER:
echo "Java Management Extensions (JMX RI) NOT installed."
;;
esac
echo "... done."
#################################### # 5. Give user ownership of Tomcat # #################################### echo "-----------------------------" echo "Granting feline ownership ..." echo "-----------------------------" sudo chown -R ${USER}:${GROUP} ${TOMCAT_HOME} echo "... done."
###################################### # 6. Modify the Tomcat users file to # # include an admin/manager user # ###################################### echo "------------------------------------" echo "Creating a new Tomcat users file ..." echo "------------------------------------" mv ${TOMCAT_USERS_FILE} ${TOMCAT_USERS_FILE}.orig
file=${TOMCAT_USERS_FILE}
echo "<?xml version='1.0' encoding='utf-8'?>" >> $file
echo '<!--' >> $file
echo ' NOTE: By default, no user is included in the "manager" role required' >> $file
echo ' to operate the "/manager" web application. If you wish to use this app,' >> $file
echo ' you must define such a user - the username and password are arbitrary.' >> $file
echo '-->' >> $file
echo '<tomcat-users>' >> $file
echo ' <role rolename="tomcat"/>' >> $file
echo ' <role rolename="role1"/>' >> $file
echo ' <role rolename="admin"/>' >> $file
echo ' <role rolename="manager"/>' >> $file
echo ' <user name="tomcat" password="tomcat" roles="tomcat,admin,manager" />' >> $file
echo ' <user name="role1" password="tomcat" roles="role1" />' >> $file
echo ' <user name="both" password="tomcat" roles="tomcat,role1" />' >> $file
echo ' <user name="'${TOMCAT_USER}'" password="'${TOMCAT_PASS}'" roles="admin,manager" />' >> $file
echo '</tomcat-users>' >> $file
echo "... done."
########################################## # 7. Create startup and shutdown scripts # ########################################## echo "---------------------------------------------------------" echo "Creating Tomcat startup and shutdown scripts for user ..." echo "---------------------------------------------------------" file=${USER_SCRIPT_DIR}"/start_tomcat.sh" if test -e $file then mv $file $file.orig fi echo "#!/bin/sh" >> $file echo "export CATALINA_HOME="${CATALINA_HOME} >> $file echo "export JAVA_HOME="${JAVA_HOME} >> $file echo "\$CATALINA_HOME/bin/startup.sh" >> $file chmod 755 $file
file=${USER_SCRIPT_DIR}"/stop_tomcat.sh" if test -e $file then mv $file $file.orig fi echo "#!/bin/sh" >> $file echo "export CATALINA_HOME="${CATALINA_HOME} >> $file echo "export JAVA_HOME="${JAVA_HOME} >> $file echo "\$CATALINA_HOME/bin/shutdown.sh" >> $file chmod 755 $file
echo "... done."
############### # 8. Clean up # ############### echo "---------------" echo "Cleaning up ..." echo "---------------" sudo \rm -f ${TOMCAT_BASE}/tomcat.tar.gz sudo \rm -f ${TOMCAT_BASE}/compat.tar.gz sudo \rm -f ${TOMCAT_BASE}/admin.tar.gz
case "$INSTALL_JMX" in [yY]|[yY][eE][sS]) # YES: # sudo \rm -f ${JMX_FILE} sudo \rm -rf ${TOMCAT_BASE}/${JMX_DIR}/* sudo rmdir ${TOMCAT_BASE}/${JMX_DIR} ;; *) # IGNORE: ;; esac
echo "... all done!"
###################### # 9. Words of advice # ###################### echo "-----------------" echo "Some useful tips:" echo "-----------------" echo "1. Start up Tomcat with the command:" echo " ${USER_SCRIPT_DIR}/start_tomcat.sh" echo "2. Shut down Tomcat with the command:" echo " ${USER_SCRIPT_DIR}/stop_tomcat.sh" echo "3. To test Tomcat, load this URL in your web browser:" echo " http://localhost:8080/" echo "4. If Tomcat chokes on a hairball and starts spewing" echo " ClassLoader errors in the log file:" echo " ${TOMCAT_HOME}/logs/catalina.out" echo " then clean out your Java extensions folders:" echo " ${JAVA_EXT} and ~${JAVA_EXT}" echo " to remove all conflicts." echo "Meow!"
exit
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]