Install Tomcat 8 in CentOS 6

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

Leave a Reply

Your email address will not be published. Required fields are marked *

Please wait...

Subscribe to our newsletter

Want to be notified when our article is published? Enter your email address and name below to be the first to know.
%d bloggers like this: