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 4 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.

Instructions

Create Tomcat user

For security reasons, you should run tomcat as a non-root user.

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 paste the following into it:

[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=-Xms1000M -Xmx2000M -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

Before saving this,

  1. check that JAVA_HOME points to the version of java that you want to use
  2. check the CATALINE_OPTS -Xms and -Xmx memory settings

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