Install and configure Apache Tomcat 10 on debian 10
Apache Tomcat is an open-source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and WebSocket technologies.Tomcat provides a "pure Java" HTTP web server environment in which Java code can run.Tomcat is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation, released under the Apache License 2.0 license.
In this article we will help you on how to install Apache tomcat 10 on Debian 10
prerequisites:
you need to login with root user and any non root user with sudo privileges.
Step 1: Install Java
First we need to update packages using apt and then install Java
sudo apt update
sudo apt install default-jdk
now check java version using below command.
java --version
sample output:
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode, sharing)
Also Read -> How to Install Ruby on Rails on Debian 10
Step 2: Add tomcat system user
we recommend that, Tomcat should not run as root user due to security risk for production servers. so we will create a new non-root user that will be used to run the Tomcat service.
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Step 3: download and install tomcat
we will download tomcat 10 from its official site.
wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.4/bin/apache-tomcat-10.0.4.tar.gz
extract it and set the permissions.
tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin
Also Read -> How to Install Docker on Debian 10
Step 4: create tomcat user using xml file
To configure Tomcat users, you can edit below file.
nano /opt/tomcat/conf/tomcat-users.xml
add below lines at the end of the file
<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="SECRET_PASSWORD" roles="admin-gui,manager-gui"/>
</tomcat-users>
Note: set password in place of secret_password section and then save and exit.
Also Read -> How to Install Apache Maven on Debian 10
Step 5: create systemd file
Its better to have systemd unit file for tomcat so that during reboots tomcat service comes up automatically. So, to configure systemd unit file.
sudo vi /etc/systemd/system/tomcat.service
add below content to above file
[Unit]
Description="Tomcat10 service"
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
save and exit the file.
now reload system daemon file and start and enable the tomcat application.
sudo systemctl daemon-reload
sudo systemctl start tomcat.service
sudo systemctl enable tomcat.service
sudo systemctl status tomcat.service
sample output:
● tomcat.service - "Tomcat10 service"
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2021-04-03 22:22:41 PDT; 6s ago
Process: 1546 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 1553 (java)
Tasks: 15 (limit: 1749)
Step 6: Allow Remote access
If you want to access tomcat applications from outside then edit the context.xml file for manager & host-manager and also you can either allow specific remote system or allow from all.
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
you can comment out below lines in both the files in manager andhost-manager
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
save and close the both the files and restart tomcat service.
sudo systemctl restart tomcat.service
Step 7: Allow Firewall
if firewall is running on your system, then allow 8080 port.
sudo ufw allow 8080
Also Read -> How to Install php 8 on Debian 10
Step 8: Access tomcat
Now open your browser and access tomcat interfaces by entering your server ip address or domain name with port 8080 as below.