UPDATE THE SYSTEM
Make sure you are in a screen session and your CentOS 6 based Linux Virtual Server is up-to-date by running:
## screen -U -S tomcat8-screen
## yum update
INSTALL JAVA 8
Download the latest JAVA 8 from here or use the following command to download JAVA JDK 8u5:
for 32bit systems use:
## wget –no-cookies \
–no-check-certificate \
–header “Cookie: oraclelicense=accept-securebackup-cookie” \
“http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-i586.rpm” \
-O /opt/jdk-8-linux-i586.rpm
for 64bit systems use:
## wget –no-cookies \
–no-check-certificate \
–header “Cookie: oraclelicense=accept-securebackup-cookie” \
“http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.rpm” \
-O /opt/jdk-8-linux-x64.rpm
once the JAVA package has been downloaded, install it using rpm as follows:
for 32bit systems use:
## rpm -Uvh /opt/jdk-8-linux-i586.rpm
for 64bit systems use:
## rpm -Uvh /opt/jdk-8-linux-x64.rpm
CONFIGURE JAVA
configure the newly installed JAVA package using alternatives as in:
## alternatives –install /usr/bin/java java /usr/java/jdk1.8.0_05/jre/bin/java 20000
## alternatives –install /usr/bin/jar jar /usr/java/jdk1.8.0_05/bin/jar 20000
## alternatives –install /usr/bin/javac javac /usr/java/jdk1.8.0_05/bin/javac 20000
## alternatives –install /usr/bin/javaws javaws /usr/java/jdk1.8.0_05/jre/bin/javaws 20000
## alternatives –set java /usr/java/jdk1.8.0_05/jre/bin/java
## alternatives –set javaws /usr/java/jdk1.8.0_05/jre/bin/javaws
## alternatives –set javac /usr/java/jdk1.8.0_05/bin/javac
## alternatives –set jar /usr/java/jdk1.8.0_05/bin/jar
check the JAVA version running on your system:
## java -version
INSTALL TOMCAT 8
Create a separate user which will run the Tomcat server:
## useradd -r tomcat8 –shell /bin/false
Download the latest Tomcat 8 version from here or use the following command to download Tomcat 8.x
## wget http://www.eu.apache.org/dist/tomcat/tomcat-8/v8.0.28/bin/apache-tomcat-8.0.28.tar.gz -P /tmp
Extract the contents of the Tomcat archive to /opt using the following command:
## tar -zxf /tmp/apache-tomcat-8.0.28.tar.gz -C /opt
## ln -s /opt/apache-tomcat-8.0.28 /opt/tomcat-latest
## chown -hR tomcat8: /opt/tomcat-latest /opt/apache-tomcat-8.0.28
START THE TOMCAT 8 SERVICE
Create the following init script in /etc/init.d/tomcat8
#!/bin/bash
#
# tomcat8
#
# chkconfig: – 80 20
#
### BEGIN INIT INFO
# Provides: tomcat8
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Description: Tomcat 8
# Short-Description: start and stop tomcat
### END INIT INFO
## Source function library.
#. /etc/rc.d/init.d/functions
export JAVA_HOME=/usr/java/default
export JAVA_OPTS=”-Dfile.encoding=UTF-8 \
-Dnet.sf.ehcache.skipUpdateCheck=true \
-XX:+UseConcMarkSweepGC \
-XX:+CMSClassUnloadingEnabled \
-XX:+UseParNewGC \
-XX:MaxPermSize=128m \
-Xms512m -Xmx512m”
export PATH=$JAVA_HOME/bin:$PATH
TOMCAT_HOME=/opt/tomcat-latest
TOMCAT_USER=tomcat8
SHUTDOWN_WAIT=20
tomcat_pid() {
echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk ‘{ print $2 }’`
}
start() {
pid=$(tomcat_pid)
if [ -n “$pid” ]
then
echo “Tomcat is already running (pid: $pid)”
else
# Start tomcat
echo “Starting tomcat”
ulimit -n 100000
umask 007
/bin/su -p -s /bin/sh $TOMCAT_USER $TOMCAT_HOME/bin/startup.sh
fi
return 0
}
stop() {
pid=$(tomcat_pid)
if [ -n “$pid” ]
then
echo “Stoping Tomcat”
/bin/su -p -s /bin/sh $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh
let kwait=$SHUTDOWN_WAIT
count=0;
until [ `ps -p $pid | grep -c $pid` = ‘0’ ] || [ $count -gt $kwait ]
do
echo -n -e “\nwaiting for processes to exit”;
sleep 1
let count=$count+1;
done
if [ $count -gt $kwait ]; then
echo -n -e “\nkilling processes which didn’t stop after $SHUTDOWN_WAIT seconds”
kill -9 $pid
fi
else
echo “Tomcat is not running”
fi
return 0
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=$(tomcat_pid)
if [ -n “$pid” ]
then
echo “Tomcat is running with pid: $pid”
else
echo “Tomcat is not running”
fi
;;
esac
exit 0
make the script executable using chmod
## chmod +x /etc/init.d/tomcat8
Start the Tomcat 8 server using:
## service tomcat8 start
Add the Tomcat 8 service to system startup:
## chkconfig tomcat8 on
Access your newly installed Tomcat at http://YOUR_IP:8080
Enabling Tomcat Manager and Admin Users
Edit the tomcat-users.xml file in the directory /opt/tomcat-latest/conf using your favorite editor
Add the following lines under <tomcat-users> section
<role rolename=”manager-gui”/>
<user username=”manager” password=”manager_password” roles=”manager-gui”/>
<role rolename=”admin-gui” />
<user username=”admin” password=”admin_password” roles=”manager-gui,admin-gui” />
Save the file and restart Tomcat.
Now you will be able to deploy your applications using the Tomcat Manager
Changing Tomcat Port
Edit the server.xml file in the directory /opt/tomcat-latest/conf using your favorite editor
Change the following
<Connector port=”8080″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />
To
<Connector port=”8181″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />
Save the file and restart the Tomcat service.
Please note that you cannot change the port to any port below 1024 as the Tomcat is not running under the root user. If you want to change the port from 8080 to 80, then you need to setup httpd and use the ajp connector to connect to Tomcat.
Install Apache using yum install httpd
Once Apache is installed, execute the command chkconfig httpd on to make sure Apache starts during boot.
Edit the file /etc/httpd/conf.d/proxy.conf using vi editor. If the file does not exist, it will create once you save the file. Add the following lines in the file.
RewriteEngine On
RewriteRule ^/(.*)$ ajp://localhost:8009/$1 [P,QSA,L]
Save the file and start Apache using service httpd restart
Now try to access the Tomcat URL using http://YOUR_IP