How to Install Tomcat Version 10 on Ubuntu Server?

Modified on Sun, 28 Sep at 7:44 PM

How to Install Tomcat Version 10 on Ubuntu Server?


Step1. Login to the server with SSH access.

IP: 12.34.56.78 
Username: root 
Password: ********


Step2. Before we install Tomcat on Ubuntu, update the system packages file.


root@ayechan:~# sudo apt update


Step3. Tomcat is a Java server; we need to have JDK installed on the system. Please use the following command.


root@ayechan:~# sudo apt install openjdk-11-jdk

If we finished the installation, we can check java version using following command.


root@ayechan:~# java -version

Step4. Create Tomcat User and Group


For security, we should not run tomcat under root user. So, we will create new group and system user to run the Apache tomcat service with home directory /opt/tomcat.


root@ayechan:~# sudo groupadd tomcat

root@ayechan:~# sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Step5. Download and Extract Tomcat 10


You can download it directly from the Tomcat download page. Just copy the link of the core tar.gz file under the Binary Distributions section. 

https://tomcat.apache.org/download-10.cgi


Go back to the terminal and change to the /tmp directory with the command.

root@ayechan:~# cd /tmp


To download from the copied link (from Tomcat website), use the following curl command:

root@ayechan:~# curl -O https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.17/bin/apache-tomcat-10.1.17.tar.gz


To extract the tar.gz Tomcat file, create a new /opt/tomcat/ directory with the command. After that extract the file in the new directory with the following command.


root@ayechan:~# sudo mkdir /opt/tomcat

root@ayechan:~# sudo tar xzvf apache-tomcat-10.1.17.tar.gz -C /opt/tomcat --strip-components=1

Step6. Now, change the ownership of the /opt/tomcat/bin directory to tomcat and set the execution permission to all files and directories.


root@ayechan:~# cd /opt/tomcat

root@ayechan:~# sudo chown -R tomcat: /opt/tomcat

root@ayechan:~# sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'

Step7. Create System Unit File


Before we use Tomcat service, we need to create a systemd service file. To configure the file, we first need to find the JAVA_HOME path. Using the following command.

root@ayechan:~# sudo update-java-alternatives -l


Open your text editor and create a file name tomcat.service in the /etc/systemd/system.

root@ayechan:~# sudo nano /etc/systemd/system/tomcat.service


Next, paste the following configuration:

[Unit] 
Description=Apache Tomcat Web Application Container 
After=network.target 
[Service] 
Type=forking 
User=tomcat 
Group=tomcat 
Environment=”JAVA_HOME /usr/lib/jvm/java-1.11.0-openjdk-amd64” 
Environment=”CATALINA_PID=/opt/tomcat/temp/tomcat.pid” 
Environment=”CATALINA_Home=/opt/tomcat” 
Environment=”CATALINA_BASE=/opt/tomcat” 
Environment=”CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC” 
Environment=”JAVA_OPTS.awt.headless=true -Djava.security.egd=file:/dev/v/urandom’ 
ExecStart=/opt/tomcat/bin/startup.sh 
ExecStop=/opt/tomcat/bin/shutdown.sh 
[Install] 
WantedBy=multi-user.target


For the changes to take place, reload the system daemon with the command.

root@ayechan:~# sudo systemctl daemon-reload


The following commands will allow you to execute the Tomcat service:

root@ayechan:~# cd /opt/tomcat/bin

root@ayechan:~# sudo ./startup.sh run

Step8. Adjust the Firewall Setting


Tomcat uses Port 8080, which is outside your local network.

root@ayechan:~# sudo ufw allow 8080/tcp

root@ayechan:~# sudo ufw status


If the port is open, we can check Tomcat webpage from the browser

http://server_ip:8080

Step9. Configure Web Management Interface


For security reasons, it is recommended to create an admin user and password to access the Tomcat application. You can create it by editing tomcat-users.xml file.

root@ayechan:~# sudo nano /opt/tomcat/conf/tomcat-users.xml

<role rolename="manager-gui"/> 
<user username="tomcatadmin" password="password" roles="manager-gui,admin-gui"/>

Step10. Enable Tomcat Remote Access


The default Tomcat manager and host-manager applications are accessible for localhost only. To allow access to these pages from the remote system, you need to modify the following configuration files.

root@ayechan:~# sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml


Close the following lines: Repeat the same process for the host-manager file

<!-- 
<Valve className="org.apache.catalina.valves.RemoteAddrValve" 
allow="127\.\d+\.\d+\.\d+|::1|0000:1|THE.IP.ADDRESS." /> 
-->


Similarly edit context.xml for the host manager application in the text editor:


root@ayechan:~# sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

root@ayechan:~# sudo systemctl restart tomcat


THANK YOU!!! 

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article