Categories: Linux

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

Nitesh Shah

Share
Published by
Nitesh Shah

Recent Posts

How to setup first Azure Virtual Machine?

Setting up your first Azure Virtual Machine can be done by following these steps: Create…

1 year ago

How to setup Amazon Cloudfront and S3 to serve static resources

Amazon CloudFront is a content delivery network (CDN) that helps you serve static content such…

1 year ago

Step-By-Step Guide To Setting Up An AWS Application Load Balancer

Step-By-Step Guide To Setting Up An AWS Application Load Balancer Are you looking for a…

1 year ago

How to restore MySQL database from .frm and .ibd files?

MySQL databases often get corrupted due to issues like hardware failure, file system failure etc.…

4 years ago

SQL Server Replication

SQL Server Replication is the process of copying databases from one node to another to…

5 years ago

101 System Admin Tools to make life easy

Here are 101 System Admin tools which make System Admins' life easy.

7 years ago

This website uses cookies.