In this tutorial, we will show you how to install and configure Apache Tomcat on Debian 9 Stretch. For those of you who didn’t know, Apache Tomcat is an open-source web server and servlet container developed by the Apache Software Foundation. It implements the Java Servlet, JavaServer Pages (JSP), Java Unified Expression Language, and Java WebSocket specifications from Sun Microsystems and provides a web server environment for Java code to run in.
This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo
‘ to the commands to get root privileges. I will show you the step-by-step installation of Apache Tomcat 8 on a Debian 9 (Stretch) server.
Prerequisites
- A server running one of the following operating systems: Debian 9 (Stretch).
- It’s recommended that you use a fresh OS install to prevent any potential issues.
- SSH access to the server (or just open Terminal if you’re on a desktop).
- A
non-root sudo user
or access to theroot user
. We recommend acting as anon-root sudo user
, however, as you can harm your system if you’re not careful when acting as the root.
Install Tomcat on Debian 9 Stretch
Step 1. Before we install any software, it’s important to make sure your system is up to date by running the following apt-get
commands in the terminal:
apt-get update apt-get upgrade
Step 2. Installing Java (JRE or JDK).
Add the webupd8team Java PPA repository in your Debian system. After that you will be able to install the latest JRE:
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
Then, you will need to fully update the system with the following command and install it:
apt-get update apt-get install oracle-java8-installer
Verify Installed Java Version.
java -version
Result:
java version "1.8.0_74" Java(TM) SE Runtime Environment (build 1.8.0_74-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)
Step 3. Installing Apache Tomcat.
For best practice, Tomcat should never be run as a privileged user (root). We recommend you create a separate system user that will run the Tomcat server. Therefore, issue the following command:
groupadd tomcat useradd -g tomcat -d /opt/tomcat -s /bin/nologin tomcat
The first thing to do is to go to Apache Tomcat’s download page and download the latest stable version of Apache Tomcat, At the moment of writing this article it is version 8.5.20:
wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz tar xzvf apache-tomcat-8.5.20.tar.gz mv apache-tomcat-8.5.20/* /opt/tomcat/
Change the ownership of the extracted directory so that the tomcat user can write files in it.
chown -R tomcat:tomcat /opt/tomcat/
Let’s create a systemd
init file so you can start/restart/stop Tomcat:
nano /etc/systemd/system/tomcat.service
Once opened, paste the following:
[Unit] Description=Apache Tomcat 8.x Web Application Container Wants=network.target After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment='CATALINA_OPTS=-Xms512M -Xmx1G -Djava.net.preferIPv4Stack=true' Environment='JAVA_OPTS=-Djava.awt.headless=true' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh SuccessExitStatus=143 User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
Enter the underneath commands to start Tomcat and enable it to start on boot:
systemctl daemon-reload systemctl restart tomcat systemctl enable tomcat
Step 4. Configuring Firewall for Tomcat.
You may need to allow Tomcat server requests in the firewall so that we can access the application from the external network:
ufw allow 8080
Step 5. Finally, open apache tomcat from your browser, go to your IP or domain with the 8080 port (because Tomcat will always run on the 8080 port) as an example: mydomain.com:8080, replace mydomain.com with your IP or domain.
Congratulations! You have successfully installed Tomcat. Thanks for using this tutorial for installing Apache Tomcat on Ubuntu Debian 9 Stretch system. For additional help or useful information, we recommend you check the official Apache Tomcat website.