Setup Apache Tomcat 8 | 8.5 on Ubuntu 16.04 | 18.04 LTS

This brief tutorial shows you how to get Tomcat version 8 series ( 8.5) on Ubuntu 16.04 | 18.04 LTS systems.. If you don’t know what Tomcat is, here’s an overview…

Apache Tomcat software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket developed by the Apache Software Foundation… Although not as popular as Apache2 or Nginx HTTP servers, Tomcat is still important to some projects…

Tomcat works best when rendering web pages the include Java server page coding and Java Servlet… These languages are still required by some other protocols used by Java developers..

This brief tutorial is going to show students and new users how to install Tomcat on Ubuntu 16.04 | 18.04…

When you’re ready to install Tomcat, follow the steps below:

Step 1: Install OpenJDK

Tomcat requires Java JDK to be installed in order to function… You can either install Oracle Java JDK or its open source alternative called OpenJDK..

For this tutorial, we’re going to be installing OpenJDK and to install it in Ubuntu is pretty straightforward…

Simply run the commands below to install OpenJDK:

sudo apt update
sudo apt install default-jdk

That should install OpenJDK 8 and configure it as the default…

Now that Java is installed, we can now download and create a tomcat user, which will be used to run the Tomcat service.

Step 2: Create Tomcat Service Account

You’ll want to run Tomcat as it own user without root privileges… You should create a new user and group that will run the Tomcat service… To do that, run the commands below

First, create a new tomcat group called tomcat.. Linux systems usually create groups based on the account name..

sudo groupadd tomcat

Next, create a new tomcat user called tomcat and make the user a member of the tomcat group above….  To do that, run the commands below

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

Now that our tomcat user is set up, let’s download and install Tomcat package..

Step 3: Download Tomcat Packages

After installing OpenJDK and creating a service account for Tomcat, run the commands below to download Tomcat version 8.. At the time of this writing the latest version of the 8 series was 8.5.42.

You can get the latest from the link below:

https://tomcat.apache.org/download-80.cgi

cd /tmp
wget ftp://apache.cs.utah.edu/apache.org/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz

After downloading, we’ll also want to create a new Tomcat directory at /opt/tomcat.. Then we’ll extract the downloaded content into that directory…

To do that, run the commands below:

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

Next, give the tomcat user control of the entire directory and make all the scripts in the bin location executable…

sudo chown -R tomcat: /opt/tomcat
sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'

When you’re done, continue below to creating Tomcat service…

Step 4: Configure Tomcat Service

Now that the package is extracted, run the commands to open Tomcat configuration file for its default user

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

Then create an account with password for the user and save by copying and pasting the lines below into the file.. just before the </tomcat-users>

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="type_new_password_here" roles="manager-gui,admin-gui"/>

Save the file and exit..

Next, run the commands below to create a server account for Tomcat

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

then copy and paste the lines below into the file and save

[Unit]
Description=Tomcat servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

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

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

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

[Install]
WantedBy=multi-user.target

Save and exit.

After that, run the commands below to reload systemd profiles and enable tomcat service…

sudo systemctl daemon-reload
sudo systemctl start tomcat.service
sudo systemctl enable tomcat.service

To check if Tomcat is running or not, run the commands below:

sudo systemctl status tomcat.service

You should get similar screen as below;

● tomcat.service - Tomcat 8.5 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-07-08 13:46:15 CDT; 1min 35s ago
 Main PID: 8947 (java)
    Tasks: 46 (limit: 4680)
   CGroup: /system.slice/tomcat.service
           └─8947 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.mana

Jul 08 13:46:15 ubuntu1804 systemd[1]: Starting Tomcat 8.5 servlet container...
Jul 08 13:46:15 ubuntu1804 startup.sh[8937]: Existing PID file found during start.
Jul 08 13:46:15 ubuntu1804 startup.sh[8937]: Removing/clearing stale PID file.
Jul 08 13:46:15 ubuntu1804 startup.sh[8937]: Tomcat started.
Jul 08 13:46:15 ubuntu1804 systemd[1]: Started Tomcat 8.5 servlet container.

That is how you now tomcat is running…

Now, open your browser and browse to the local server IP or hostname

http://localhost:8080

and you should see Tomcat default page..

Tomcat ubuntu install

Click on the Manager App to logon to the backend page…

Tomcat Ubuntu setup

By default,Tomcat restrict access to the Manager and Host Manager apps to connections coming the local server only… If you want to access the Tomcat server remotely, you’ll want to whitelist the remote IP address to be allowed… To change the IP address restrictions on these, open the appropriate context.xml files.

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

Inside, comment out the IP address restriction to allow connections from anywhere. Alternatively, if you would like to allow access only to connections coming from your own IP address, you can add your public IP address to the list:

context.xml files for Tomcat webapps
<Context antiResourceLocking="false" privileged="true" >
  <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|new_public_ip_address_here" />-->
</Context>

Save and close the files and you’re done!

That’s it!

Congratulations! You have successfully installed and configured Tomcat 8 | 8.5 on Ubuntu 16.04 and 18.04 LTS systems.

You may also like the post below:

Setup webEdition CMS on Ubuntu 18.04 | 16.04 with Nginx

One Reply to “Setup Apache Tomcat 8 | 8.5 on Ubuntu 16.04 | 18.04 LTS”

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.