...
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 can 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
Warning |
---|
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 |
---|
|
...
|
...
|
Download Tomcat
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
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:
...
And then paste the following script into the file, making sure that the script is adjusted so that:
- JAVA_HOME
...
- is the
...
- base installation of Java. If you don't know where this is, run the command:
Code Block |
---|
update-alternatives --list java |
This will give you the full path of the java program, for example: /usr/lib/jvm/temurin-11-jdk-amd64/bin/java
. The installation directory in this case is /usr/lib/jvm/temurin-11-jdk-amd64
.
- 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); see Tomcat Planning for details of estimating Tomcat's memory allocation
- 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=/usr/lib/jvm/temurin-8-jdk-amd64 Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=/opt/jdk/jdk1.8.0_85/jreCATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms8096M -Xmx8096M -server -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/tomcat/logs/gc-%%t.log' 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 |
Java 11
Code Block |
---|
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/temurin-11-jdk-amd64 Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms8096M -Xmx8096M -server -verbose:gcXlog:gc=debug:file=/opt/tomcat/logs/gc-%%t.log:time,uptimemillis,tid' 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 |
...