Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This guide covers downloading and installing Tomcat 8 on an Ubuntu Linux 9 on a linux server.

Prerequisites

You have installed Ubuntu 16 Linux.

You The following instructions assume that:

  • you can login as a non-root user with sudo access.

...

  • you have installed Java, with the required settings.

Instructions

Step 1  Create Tomcat user

Tomcat on Linux
Warning
title

Do not run Tomcat as root as this constitutes a security risk.

...

Code Block
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Step 2  Download and

...

install Tomcat 

Excerpt
  1. Download

    1. To find the latest version

...

    1. , go to the

...

    1. Tomcat downloads page: https://tomcat.apache.org/download-90.cgi
    2. Find the latest Binary Distributions section, then the Core sub-heading, and copy the tar.gz link.

Download Tomcat

...

    1. To download Tomcat, on the Linux server, go to the tmp directory

...

    1. . Use the curl command to download from

...

    1. the the tar.gz link.

      Code Block
      cd /tmp
      curl -O http://mirror.ox.ac.uk/sites/rsync.apache.org/tomcat/tomcat-
8
    1. 9/
v8
    1. v9.
5
    1. 0.
11
    1. 38/bin/apache-tomcat-
8
    1. 9.
5
    1. 0.
11
    1. 38.tar.gz


  1. Install

...

    1. Unpack the

...

    1. Tomcat tar.gz file

...

    1. into /opt/tomcat.

      Code Block
      sudo mkdir /opt/tomcat
      cd /opt/tomcat
      sudo tar xvf /tmp/apache-tomcat-
8
    1. 9*tar.gz --strip-components=1


      This

...

    1. creates the tomcat folders (conf, logs, webapps etc.) directly under /opt/tomcat.

...

    1. Set the file ownership and permissions.

      Code Block
      cd /opt/tomcat
      sudo chown -R tomcat webapps/ work/ temp/ logs/
      sudo chgrp -R tomcat .
      sudo chmod -R g+r conf
      sudo chmod g+x conf


Step 3  Create a service wrapper

This stage step creates a wrapper which that allows tomcat Tomcat to be managed as a service; this allows tomcat to be stopped and started . Using a service means you can stop and start Tomcat reliably, and ensures that the running environment (e.g. the starting directory) is well defined.

Specifically, these These instructions create a systemd service.

First, create a service definition file:

Code Block
sudo vi /etc/systemd/system/tomcat.service

and And then paste the following into it:script into the file, making sure that the script is adjusted so that: 

  1. JAVA_HOME points to the version of java that you want to use
  2. the memory settings (-Xms and -Xmx) on the line for CATALINA_OPTS are set as needed (this example assumes you are allocating 8GB of memory to tomcat)
  3. the location of the GC (Garbage Collection) log file, set in CATALINA_OPTS, is correct - in the examples below, this /opt/tomcat/logs

Java 8

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

[Service]
Type=forking

Environment=JAVA_HOME=/opt/jdk/jdk1.8.0_85/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms1000MXms8096M -Xmx2000MXmx8096M -server -XX:+PrintGCDetails -XX:+PrintGCDateStamps -verbose:gcXloggc:/opt/tomcat/logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10m'
Environment='JAVA_OPTS=-Djava.awt.headless=true'

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

WorkingDirectory=/opt/tomcat

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Before saving this,

...

Java 11

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

[Service]
Type=forking

Environment=JAVA_HOME=/opt/jdk/jdk-11.0.13+8
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms8096M -Xmx8096M -server -Xlog:gc:file=/opt/tomcat/logs/gc.log:time,level,tags:filecount=10,filesize=10m'
Environment='JAVA_OPTS=-Djava.awt.headless=true'

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

WorkingDirectory=/opt/tomcat

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Now enable, then start the service:

...