Tomcat is an open-source implementation of the Java Servlet, JavaServer Pages, Java Expression Language, and Java WebSocket technologies.

Prerequisites

The user you are logging in as must have sudo privileges to be able to install packages.

Install OpenJDK

Tomcat 9 requires Java SE 8 or later. We will install OpenJDK, the open-source implementation of the Java Platform ,which is the default Java development and runtime in CentOS 7.

Install Java by typing the following command:

sudo yum install java-1.8.0-openjdk-devel

Create Tomcat system user

We’ll create a new system user and group with home directory /opt/tomcat that will run the Tomcat service:

sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Download Tomcat

We will download the latest version of Tomcat 9.0.x from the Tomcat downloads page .

At the time of writing, the latest Tomcat version is 9.0.46. Before continuing with the next step, you should check the Tomcat 9 download page to see if a newer version is available.

Navigate to the /tmp directory and download the Tomcat zip file using the following wget command :

cd /tmpwget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.46/bin/apache-tomcat-9.0.46.tar.gz

When the download is complete, extract the tar file :

tar -xf apache-tomcat-9.0.46.tar.gz

Move the Tomcat source files to it to the /opt/tomcat directory:

sudo mv apache-tomcat-9.0.46 /opt/tomcat/

Tomcat 9 is updated frequently. To have more control over versions and updates, we’ll create a symbolic link called latest, that points to the Tomcat installation directory:

sudo ln -s /opt/tomcat/apache-tomcat-9.0.46 /opt/tomcat/latest

The tomcat user that we previously set up needs to have access to the tomcat installation directory.

Run the following command to change the directory ownership to user and group tomcat:

sudo chown -R tomcat: /opt/tomcat

Make the scripts inside the bin directory executable by issuing the following chmod command:

sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

Create a systemd unit file

To make Tomcat run as a service open your text editor and create a tomcat.service unit file in the /etc/systemd/system/ directory:

sudo nano /etc/systemd/system/tomcat.service

Paste the following content:

/etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Save and close the file.

Notify systemd that we created a new unit file by typing:

sudo systemctl daemon-reload

Enable and start the Tomcat service:

sudo systemctl enable tomcatsudo systemctl start tomcat

Check the service status with the following command:

sudo systemctl status tomcat
tomcat.service - Tomcat 9 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-05-15 20:47:50 UTC; 4s ago
  Process: 1759 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 1767 (java)
   CGroup: /system.slice/tomcat.service

Configure Tomcat Web Management Interface

At this point Tomcat is installed, and we can access it with a web browser on port 8080

Once done, restart the Tomcat service for changes to take effect:

sudo systemctl restart tomcat

Test the Installation

Open your browser and type: http://<your_domain_or_IP_address>:8080

Upon successful installation, a screen similar to the following should appear:

tomcat

Tomcat web application manager dashboard is available Now at http://<your_domain_or_IP_address>:8080