A tutorial on how to install Tomcat 7 server on Ubuntu 18.04

Tomcat, often called Apache Tomcat, is one of the most popular applications designed to execute a Java servlet and render web servers with Java page coding. It is an open source application released by Apache Software Foundation. It’s favored by many developers! That’s why in this tutorial, we’ll show you how to install Tomcat on Ubuntu 18.04 and set it up for use on your VPS.

Tomcat generates JSP files (server-generated webpages similar to PHP and ASP files) into Java code, further compiling to .class files by the server, and executed by the Java virtual machine. As of today, Tomcat is definitely one of the more useable servlet containers available.

Benefits of Apache Tomcat

  • Tomcat is a quick and easy way to run your applications in Ubuntu. It provides quick loading and helps run a server more efficiently
  • Tomcat contains a suite of comprehensive, built-in customization choices which enable its users to work flexibly
  • Tomcat is a free, open-source application. It offers great customization through access to the code
  • Tomcat offers its users an extra level of security
  • Thanks to its stability, even if you face issues in Tomcat, it doesn’t stop the rest of the server from working

How to Install Tomcat on Ubuntu

This tutorial will teach you how to install Tomcat 7 on Ubuntu 18.04, and how to configure it for use. The same tutorial applies to Ubuntu 16.04 and other Ubuntu-based distributions.

Before you begin with the guide, have a non-root user with sudo privileges set up on your server. Remember to access your server with SSH. Check out our PuTTY tutorial if you’re having issues.

Step 1: Install Java

Before we install Tomcat on Ubuntu, we need to install Java to execute the Java web application code. OpenJDK is the default Java development in Ubuntu 18.04. Installing Java is simple and quick. Just follow the below commands:

sudo apt update

Install the OpenJDK package by running:

sudo apt install default–jdk

Now that JDK is installed in your system, you can create the user tomcat by following the next step.

Step 2: Create Tomcat User

For security, you should not use Tomcat without a unique user. This will make the install of Tomcat on Ubuntu easier. Create a new tomcat group that will run the service:

sudo groupadd tomcat

Now, the next procedure is to create a new tomcat user. Create user members of the Tomcat group with a home directory opt/tomcat for running the Tomcat service:

sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Step 3: Install Tomcat on Ubuntu

The best way to install Tomcat 7 on Ubuntu is to download the latest binary release from the Tomcat 7 downloads page and configure it manually. If you need the latest version, then follow the latest stable version. Just copy the link of the core tar.gz file under the Binary Distributions section.

Now, change to the /tmp directory on your server to download the items which you won’t need after extracting the Tomcat contents:

cd /tmp

To download from the copied link (from Tomcat website), use the following curl command:

curl -O https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz

Step 4: Update Permissions

Now that you finished the install of Tomcat on Ubuntu, you need to set up the Tomcat user to have full access to the Tomcat installation. This user needs to have access to the directory. Follow the steps below:

sudo mkdir /opt/tomcat
cd /opt/tomcat
sudo tar xzvf /tmp/apache-tomcat-7.0.*tar.gz -C /opt/tomcat --strip-components=1

Check the installation folder

$ ls -ll

bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work

Now, give the Tomcat group ownership over the entire installation directory with the chgrp command:

sudo chgrp -R tomcat /opt/tomcat
ls -ll

Since you have already created a user, you can now grant tomcat ownership over the extracted installation by running:

sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin

Step5: Create a systemd Unit File

We will need to create a new unit file to run Tomcat as a service. Open your text editor and create a file name tomcat.service in the /etc/systemd/system/:

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

Next, paste the following configuration:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_Home=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
Environment="JAVA_OPTS.awt.headless=true -Djava.security.egd=file:/dev/v/urandom"

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

User=tomcat
Group=tomcat

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Save and close the file after finishing the given commands above.

Next, Notify the system that you have created a new file by issuing the following command in the command line:

sudo systemctl daemon-reload

The following commands will allow you to execute the Tomcat service:

cd /opt/tomcat/bin
sudo ./startup.sh run

Or you can use the commands

sudo systemctl start tomcat.service
sudo systemctl status tomcat.service

 tomcat.service - Apache Tomcat Web Application Container
     Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enab>
     Active: active (running) since Sat 2022-06-18 16:05:46 +07; 10s ago
    Process: 62507 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
   Main PID: 62515 (java)
      Tasks: 48 (limit: 18995)
     Memory: 153.6M
     CGroup: /system.slice/tomcat.service
             └─62515 /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java -Djava.util.lo>

Thg 6 18 16:05:46 tvt systemd[1]: Starting Apache Tomcat Web Application Container...
Thg 6 18 16:05:46 tvt startup.sh[62507]: Tomcat started.
Thg 6 18 16:05:46 tvt systemd[1]: Started Apache Tomcat Web Application Container.

Step6: Adjust the Firewall

It is essential to adjust the firewall so the requests get to the service. Tomcat uses port 8080 to accept conventional requests. Allow traffic to that port by using UFW:

sudo ufw allow 8080

Follow the command below to access the splash page by going to your domain or IP address followed by :8080 in a web browser — http://localhost:8080 in my case

Step 7: Configure the Tomcat Web Management Interface

Follow the command below to add a login to your Tomcat user and edit the tomcat-users.xml file:

sudo nano /opt/tomcat/conf/tomcat-users.xml

Now, define the user who can access the files and add username and passwords:

tomcat-users.xml — Admin User
<tomcat-users . . .>
<tomcat-users . . .>
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>

For the Manager app, type:

sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml

For the Host Manager app, type:

sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

To restart the Tomcat service and view the effects:

sudo systemctl restart tomcat

Step 8: Access the Online Interface

Now that you already have a user, you can access the web management interface in a browser. Once again, you can access the interface by providing your server’s domain name or IP address followed by port 8080 in your browser — http://server_domain_or_IP:8080

Let’s take a look at the Manager App, accessible via the link — http://server_domain_or_IP:8080/manager/html.

Make sure that you entered the account credentials to the tomcat-users.xml file.

We use the Web Application Manager to manage our Java applications. You can Begin, Stop, Reload, Deploy, and Undeploy all apps here. Lastly, it provides data about your server at the bottom of the page.

Now let’s look at the Host Manager, accessible via http://server_domain_or_IP:8080/host-manager/html/

Leave a Reply

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