PhixFlow Help

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Introduction

Apache Tomcat is the java web server which runs the PhixFlow web application.

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

Prerequisites

You have installed Ubuntu 16 Linux.

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

You have installed Java, with the required settings.

Instructions

Create Tomcat user

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

This is the tomcat user (in the tomcat group).

We set the shell to /bin/false so that it is not possible to login as tomcat, and set the home directory to /opt/tomcat, the directory under which we will install tomcat.

This user will own all files created by PhixFlow and must be able to read all PhixFlow-specific files and directories.

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

Download and Install Tomcat

Find the latest version

Go to the tomcat downloads page, find the latest Binary Distributions section, then the Core sub-heading, and copy the tar.gz link.

Download Tomcat

On the linux server, goto the tmp directory then use curl to download from the link that you found above. E.g.

cd /tmp
curl -O http://mirror.ox.ac.uk/sites/rsync.apache.org/tomcat/tomcat-8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz

Install Tomcat

Unpack the tomcat tar.gz file into /opt/tomcat.

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

This will have created the tomcat folders (conf, logs, webapps etc.) directly under /opt/tomcat.

Now to set the file ownership and permissions.

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

Create a service wrapper

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

Specifically, these instructions create a systemd service.

First, create a service definition file:

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

And then paste the following 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 CATALINE_OPTS are set as needed (this example assumes you are allocating 8GB of memory to tomcat)
[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=-Xms8096M -Xmx8096M -server -verbose:gc'
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:

sudo systemctl daemon-reload
sudo systemctl start tomcat

Lastly, check that the service started:

sudo systemctl status tomcat

Conclusion

From this point on, tomcat will start automatically when the host restarts, and you can re-start tomcat manually like this:

sudo systemctl restart tomcat



  • No labels