--- Tomcat REDO ---


# ============================================
# BANNER Tomcat Upgrades: apache-tomcat-8.5.69
# ============================================
  
To be completed on:
-------------------
  development: banappt3, banappt4, banappt5, banappt6
  production: banapp3,  banapp4,  banapp5,  banapp6
  
OpenSSL: As ORACLE
---------------------------
  sudo -i
  cd /usr/local/src/SSL
  wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
  gtar zxf openssl-1.1.1k.tar.gz
  cd openssl-1.1.1k
  ./config --prefix=/usr/local
  gmake && gmake install
  exit

NOW ORACLE
  
Tomcat:
-------
#-- 1. Download Tomcat distro (complete once per server; steps 1 thru 3)
  cd /u01/app/apache/tomcat/dist
  wget https://ftp.wayne.edu/apache/tomcat/tomcat-8/v8.5.69/bin/apache-tomcat-8.5.69.tar.gz
  
#-- 2. unpack file
  gtar zxvf apache-tomcat-8.5.69.tar.gz
  
#-- 3. build and deploy the tomcat ajp module
  export CATALINA_HOME=/u01/app/apache/tomcat/dist/apache-tomcat-8.5.69
  export JAVA_HOME=/usr/lib/jvm/java
  export ANT_HOME=/u01/app/apache/ant
  export ANT_OPTS=-Dbuild.sysclasspath=ignore
  
  echo $CATALINA_HOME
  echo $JAVA_HOME
  echo $ANT_HOME
  echo $ANT_OPTS
  
  cd $CATALINA_HOME/bin
  mkdir src
  cd src
  rm -rf *
  tar zxf ../tomcat-native.tar.gz
  cd tomcat-native-1.2.*-src
  $ANT_HOME/bin/ant
  cd native
  make clean
  ./configure --with-apr=/usr/bin/apr-1-config --with-java-home=$JAVA_HOME --with-ssl=/usr/local --prefix=$CATALINA_HOME 
  make
  make install
  
  unset CATALINA_HOME
  unset JAVA_HOME
  unset ANT_HOME
  unset ANT_OPTS

  echo $CATALINA_HOME
  echo $JAVA_HOME
  echo $ANT_HOME
  echo $ANT_OPTS


  
# ===================================================================================
# Migrate apache_tomcat_? where ? is a substitute for 1,2,3,etcetera to the new disto
# ===================================================================================
  
export CATALINA_HOME=/u01/app/apache/tomcat/dist/apache-tomcat-8.5.69
export CATALINA_NEW_HOME=/u01/app/apache/tomcat/dist/apache-tomcat-8.5.69

echo $CATALINA_HOME
echo $CATALINA_NEW_HOME



#-- Tomcat home directories
  cd /u01/app/apache
  
#-- Tomcat application server ? home
  cd apache_tomcat_?
  
#-- update setenv.sh 
  cp -rp bin/setenv.sh bin/setenv.sh.new
  cp -rp bin/setenv.sh bin/setenv.sh.last
  grep 'CATALINA_HOME=' bin/setenv.sh.new
  perl -pi -e 's|(CATALINA_HOME)=.*|\1='$CATALINA_NEW_HOME'|' bin/setenv.sh.new
  diff -Naur bin/setenv.sh bin/setenv.sh.new
  
#-- update server.xml
  cp -rp conf/server.xml conf/server.xml.new
  cp -rp conf/server.xml conf/server.xml.last
  egrep 'bufferSize|maxHttpHeaderSize|compression|compressableMimeType' conf/server.xml.new
  perl -pi -e 's/(bufferSize="\S*"[ ]?)//; s/(maxHttpHeaderSize="\S*"[ ]?)//; s/(compression="\S*"[ ]?)//; s/(compressableMimeType="\S*"[ ]?)//' conf/server.xml.new
  
#-- set secretRequired if missing
  grep -qs 'secretRequired' conf/server.xml.new || sed -i '/maxThreads/s/\(.*\)/\1 secretRequired="false"/' conf/server.xml.new
  diff -Naur conf/server.xml conf/server.xml.new

#-- replace catalina.sh
  cp -rp bin/catalina.sh bin/catalina.sh.last
  cp -rp $CATALINA_NEW_HOME/bin/catalina.sh bin/ 
  
#-- replace tomcat-juli.jar
  cp -rp bin/tomcat-juli.jar bin/tomcat-juli.jar.last
  cp -rp $CATALINA_NEW_HOME/bin/tomcat-juli.jar bin/
  
#-- check setenv.sh.new for errors and install it
  cp -rp bin/setenv.sh.new bin/setenv.sh
  
#-- check server.xml for errors and install it
  cp -rp conf/server.xml.new conf/server.xml
  mv lib/ lib.last
  cp -rp $CATALINA_NEW_HOME/lib .
  cp -rp lib.last/ucp.jar lib/
  cp -rp lib.last/ojdbc8.jar lib/
  cp -rp lib.last/xdb6.jar lib/
  
  unset CATALINA_HOME
  
#-- check configuration (fix any errors)
  ./bin/catalina.sh configtest
  
#-- stop and start Tomcat instance
   unset CATALINA_HOME
   unset CATALINA_NEW_HOME

  ./bin/catalina.sh stop 10 -force
  ./bin/catalina.sh stop
  
#-- terminate pid (ps -ef | grep apache_tomcat_?)
  kill -9 $(ps -ef | grep $(basename $(pwd)) | grep -v grep | awk '{print $2}')
  
#-- remove old log folders
  rm -rf logs.*
  
#-- start Tomcat
  ./bin/catalina.sh start
  
# ===========================================================
  
#-- reverse/rollback changes (restore old configuration)
  cp -rp conf/server.xml.last conf/server.xml
  cp -rp bin/setenv.sh.last bin/setenv.sh
  cp -rp bin/tomcat-juli.jar.last bin/tomcat-juli.jar
  cp -rp bin/catalina.sh.last bin/catalina.sh
  mv lib lib.obsolete
  mv lib.last lib/
  
#-- stop and start Tomcat instance
  ./bin/catalina.sh stop 10 -force
  ./bin/catalina.sh stop
  ./bin/catalina.sh start


Valid HTML 4.0 Transitional