How to Install Tomcat

How to Install Tomcat

Tomcat is web server and servlet container which is used to run java applications, i will be showing the steps to install tomcat and java in an production system. i will be installing Tomcat 9 and OpenJDK 1.8 (Java 8). Most Steps are common for Redhat and Debian based systems.

Java 8 Installation

For Redhat based Distribution

yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64

For Debian and Ubuntu based Distribution

sudo apt install openjdk-8-jdk

Get the Java Installed Version

java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

We need to set JAVA_HOME environment variable so run and get the JAVA_HOME Path

sudo update-alternatives --config java

Edit file vim /etc/environment add JAVA_HOME environment variable


Logout and Login, run env, Check for JAVA_HOME in the output.

Tomcat 9 Installation

Create a tomcat group

groupadd tomcat

Create a tomcat user with /opt/tomcat as its home directory

mkdir -p /opt/tomcat
useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Change working directory and download the latest tomcat from tomcat website

cd /opt

Extract the Tomcat archive

tar -xzvf apache-tomcat-9.0.12.tar.gz

Move Contents to /opt/tomcat

mv apache-tomcat/* /opt/tomcat

Change ownership and user to tomcat

chown -R tomcat:tomcat /opt/tomcat

Create Systemd Service for Tomcat Service

vim /etc/systemd/system/tomcat.service

Reload systemd manager configuration.

systemctl daemon-reload

Start Tomcat Process.

systemctl start tomcat

Enable Tomcat to Start at System Boot.

systemctl enable tomcat

Run netstat -plntu and check port 8080 is in LISTEN State by a java program. Now open http://server-ip-addres:8080 you should see tomcat homepage

Configure Tomcat Manager Users

Restart Tomcat Process.

systemctl restart tomcat

Make sure all the Files in /opt/tomcat belong to Tomcat user and group, Run this Command whenever you new deploy WAR in /opt/tomcat/webapps

chown -R tomcat:tomcat /opt/tomcat