Facebook Twitter Instagram
    TecAdmin
    • Home
    • FeedBack
    • Submit Article
    • About Us
    Facebook Twitter Instagram
    TecAdmin
    You are at:Home»Web Servers»Tomcat»How to Install Tomcat 10 on Ubuntu 20.04

    How to Install Tomcat 10 on Ubuntu 20.04

    By RahulSeptember 8, 20226 Mins Read

    Apache Tomcat is an open-source web server with a servlet container for publishing Java-based web applications. Tomcat is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation. As of today, Tomcat 10 is the latest stable version available for installation on development and production environments. To know more about the Apache Tomcat visit apache official site http://tomcat.apache.org/.

    Advertisement

    This tutorial will help you to how to install Apache Tomcat 10 on Ubuntu 20.04 LTS Linux systems.

    Prerequisites

    A running Ubuntu 20.04 system with shell access of root or sudo privileged account access.

    For the newly installed systems recommended to complete initial server setup instructions.

    Step 1 – Install Java

    You must have JRE (Java runtime environment) installed on your system. Tomcat 10 is required to have JRE 8 or higher version installed on your system. Use the following command to install OpenJDK to fulfil the requirements.

    sudo apt update 
    sudo apt install default-jdk -y 
    

    Check the current active Java version:

    java -version 
    
    openjdk 11.0.13 2021-10-19
    OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.20.04)
    OpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
    

    Step 2 – Create Tomcat User

    We recommended running a Tomcat server with a dedicated user account. Create a new user, which is recommended for security purposes mainly for production deployments.

    To create a new account, type:

    sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat 
    

    The above command will create a user and group with the name “tomcat” in your system.

    Step 3 – Install Tomcat 10

    The Apache Tomcat development team releases the latest version of Tomcat from time to time. So it will be good check download latest Tomcat version from the official download server. Use the below command to download Tomcat 10.

    wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.23/bin/apache-tomcat-10.0.23.tar.gz 
    

    Once the download is completed, extracted the downloaded archive and copy all content to the tomcat home directory.

    sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1 
    

    Next, set the proper file permissions.

    sudo chown -R tomcat:tomcat /opt/tomcat/ 
    sudo chmod -R u+x /opt/tomcat/bin 
    

    You have now the latest Tomcat application on your system.

    Step 4 – Create Tomcat User

    Now, configure your tomcat with user accounts to secure access of admin/manager pages. To do this, edit conf/tomcat-users.xml file in your editor and paste the following code inside <tomcat-users> </tomcat-users> tags. We recommend changing the password in the below configuration with high secured password.

    sudo nano /opt/tomcat/conf/tomcat-users.xml 
    

    Add the following values. Make sure to change the password for admin and manager access.

    <!-- user manager can access only manager section -->
    <role rolename="manager-gui" />
    <user username="manager" password="_SECRET_PASSWORD_" roles="manager-gui" />
    
    <!-- user admin can access manager and admin section both -->
    <role rolename="admin-gui" />
    <user username="admin" password="_SECRET_PASSWORD_" roles="manager-gui,admin-gui" />
    

    Save file and close.

    Step 5 – Enable Remote Tomcat 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.

    You can either allow a specific remote system or allow all. Edit the context.xml file for manager and host manager application:

    sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
    

    Comment out the section added for IP address restriction to allow connections from anywhere.

    <Context antiResourceLocking="false" privileged="true" >
      <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                       sameSiteCookies="strict" />
      <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
      ...
    </Context>
    

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

    sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
    

    Comment out the same section to allow connections from anywhere.

    <Context antiResourceLocking="false" privileged="true" >
      <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                       sameSiteCookies="strict" />
      <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
      ...
    </Context>
    

    Save all files and close it.

    Step 6 – Create a Tomcat Systemd Unit File

    Tomcat provides bash scripts to start, stop service. But, to make it simple, create a startup script to manage Tomcat as systemd service. Let’s create a tomcat.service file with the following content:

    sudo nano /etc/systemd/system/tomcat.service 
    
    [Unit]
    Description=Tomcat
    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
    

    Reload the systemd daemon service to load newly create files.

    sudo systemctl daemon-reload 
    

    Now, start the Tomcat application for the first time.

    sudo systemctl start tomcat.service 
    

    Next, enable the tomcat service to auto-start for subsequent system boots. This is more important for the production deployments.

    sudo systemctl enable tomcat.service 
    

    As of now, the tomcat application is running on your system. You can verify the service status by executing the command as below. Make sure the status is showing “active (running)“.

    sudo systemctl status tomcat.service 
    
    ● tomcat.service - Tomcat
         Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
         Active: active (running) since Wed 2021-03-17 10:56:39 IST; 3h 45min ago
        Process: 481049 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
       Main PID: 481056 (java)
          Tasks: 29 (limit: 4539)
         Memory: 264.2M
         CGroup: /system.slice/tomcat.service
                 └─481056 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file>
    
    Mar 17 10:56:39 tecadmin-ubuntu2004 systemd[1]: Starting Tomcat...
    Mar 17 10:56:39 tecadmin-ubuntu2004 startup.sh[481049]: Tomcat started.
    Mar 17 10:56:39 tecadmin-ubuntu2004 systemd[1]: Started Tomcat.
    

    Step 7 – Access the Tomcat Web Interface

    The default Tomcat server runs on port 8080. As you have configured Tomcat on your system, you can access web interface from your system. You can access tomcat interfaces by entering your server’s IP address or a domain name pointed to that server, followed by port 8080 in your browser:

    Change tecadmin.local with your server ip or domain or localhost.

    http://tecadmin.local:8080/
    

    You will see the page like below:

    Installing Tomcat 10

    Tomcat Manager App is a web application packaged with the Tomcat server application. The Manager interface provides us with the basic functionality we need to manage our deployed web applications.

    Click Manager App button home page or directly type /manager in browser url of main Tomcat server to access it.

    http://tecadmin.local:8080/manager/
    

    Tomcat 10 Manager Dashboard

    Tomcat Host Manager App is another web application packaged with Tomcat server application. Which is used to creates/removes Virtual Hosts within the Tomcat service. A Virtual Host allows you to define multiple hostnames on a single server.

    Click Host Manager button home page or directly type /host-manager url in main Tomcat server to access it.

    http://tecadmin.local:8080/host-manager/
    

    Tomcat 10 Host Manager Page

    Conclusion

    You have a running Tomcat server on Ubuntu system. You may need to create a Virtual host or configure a SSL certificate in Tomcat.

    Apache Java JSP tomcat Tomcat 10
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email WhatsApp

    Related Posts

    Comparing Apache MPM Worker and Prefork: Which is Right for Your Application

    How to Install Apache (httpd) on RHEL & CentOS Stream 9

    How to Install LAMP Stack on RHEL & CentOS Stream 9

    View 5 Comments

    5 Comments

    1. Eric on March 16, 2022 6:55 am

      Thank You.

      Reply
    2. Zaw on September 23, 2021 3:59 pm

      Hello,
      I followed what you described here and install tomcat 10.0.11 and followed your exact instructio(except Java installation).
      But, when I start tomcat and check the status, I see following error.
      systemed[1]: tomcat.service: Main process exited, code=exited, status=1/FAILURE
      systemed[1]: tomcat.service: Failed with result ‘exit-code’.

      can you please help? I have Ubuntu server 20.04 LTS with Jdk 1.8.0 installed before tomcat installation.
      thank you.

      Reply
      • Edson Donizete do Amaral on October 3, 2021 12:31 am

        Today, October 2, 2021, I used this same text and everything worked correctly. Perhaps, the problem you are having concerns file permissions or the Systemd Unit File, even the use of ” ” in the lines of this file

        Reply
    3. Kenneth on July 31, 2021 9:33 pm

      Great article, helped me speed up my installation process.

      Reply
    4. PRAKASH KG on May 23, 2021 3:24 pm

      Very useful. Crisp documentation

      Reply

    Leave A Reply Cancel Reply

    Advertisement
    Recent Posts
    • How to List Manually Installed Packages in Ubuntu & Debian
    • 10 Bash Tricks Every Developer Should Know
    • How to Validate Email Address in JavaScript
    • Firewalld: Common Firewall Rules and Commands
    • 12 Apk Commands in Alpine Linux Package Management
    Facebook Twitter Instagram Pinterest
    © 2023 Tecadmin.net. All Rights Reserved | Terms  | Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.