Apache Tomcat on Linux - Installation and configuration on multiple platforms. Technically, Apache Tomcat is fully compatible with all major Linux distributions, and many users run Tomcat on Linux. Despite this, many Linux users run into snags during the initial set up process.
Related
How To Rewrite URLs with mod_rewrite for Apache on Debian 8 Tutorial
How To Install Apache Kafka on Debian 10 Tutorial
Introduction
Apache Tomcat is an application server that can be used to serve Java applications to web users. It is an open implementation of the Java Servlet and JavaServer Pages specs that were developed by Sun Microsystems.
If you develop Java applications, Tomcat is a quick and easy way to serve them in a full server environment specifically designed for that purpose.
In this guide, we will install Tomcat and do some basic configuration on a Debian 7 VPS. To complete this tutorial, you will have to have a normal user with sudo privileges. Follow this guide to learn how to create users on a Debian system.
Install Apache Tomcat
In this guide, we will install Tomcat version 7 and its associated packages. Luckily, these are included in the default Debian repositories.
To get the basic package, we can update our package source list and then install the main package:
This is all we need to do to get to the default Tomcat page. Our installation is not complete yet, but you can take a look at the default Tomcat page by going to your IP address or domain followed by
:8080
in your web browser:In order to take advantage of more of Tomcat’s features, we will install some additional Tomcat packages.
These will allow us to use a web interface to control Tomcat. It will install some documentation and examples that we can also access through the web interface as well.
Install Java Development Tools
In order to use Tomcat to develop Java applications on your server, you will need to download and install a few things.
The first thing we need to do is install a compatible Java Development Kit. We can install the one that Debian selected as default with the following command:
This will install
openjdk-6-jdk
which will work well in our environment.The Tomcat documentation also suggests that you install Apache Ant, which is a build tool for Java applications, and a version control system of some sort. We will choose git:
These will help you build your Java applications and keep the code organized.
Configure Tomcat Web Interface
Before we can begin using some of the features we installed, we need to configure our server with a user and password. Tomcat does not do this by default for security reasons.
The configuration is very simple. We need to edit a file called
tomcat-users.xml
. Open it with an editor like this:Inside, you will find a heavily commented user configuration file. In fact, the only portions of the file that are not comments are:
As you might expect, we need to define a user between these two lines. We will give this user access to the web interfaces. We can define a user like this:
Choose whatever username and password you would like. This will provide you with login credentials that allow you to access the management panels.
Save and close the file when you are finished.
We should restart Tomcat in order to implement our changes:
Test the Web Interface
Once you have installed Tomcat and configured the user login, you can access the main page by going to your server IP address or domain name followed by
:8080
like this:You will see the same default Tomcat page that you saw earlier (if you checked):
Because we have installed and configured more components, however, we will have access to more functionality.
You can access the Tomcat documentation in the browser by clicking the link you see on the page or accessing this page:
This should be your first stop when you have questions about how to do something with Tomcat.
We also now have access to some example applications that are implemented using a few different technologies. These can be reached from a link on the same initial landing page, or by visiting:
Clicking through these items gives us an idea of how different functionality can be implemented in this environment. Most examples include the source code that you can use for reference.
The main functionalities that you will want access to are the manager webapp and the host-manager webapp.
Again, you can access those from the initial landing page, or by visiting:
And:
The first site will allow you to manage your Java applications. It will let you start, stop, deploy, and reload your apps easily. It can also find memory leaks caused by your running applications:
From the other page, you can test, adjust, and add virtual hosts in order to server your applications. This allows you to set up access to your deployed apps easily:
Conclusion
As you can see, Tomcat provides a nice platform for controlling and serving your Java applications in a web environment. You can easily deploy .war files and have them up and running in very little time.
Tomcat Setup
Table of Contents
Introduction
There are several ways to set up Tomcat for running on different platforms. The main documentation for this is a file called RUNNING.txt. We encourage you to refer to that file if the information below does not answer some of your questions.
Windows
Installing Tomcat on Windows can be done easily using the Windows installer. Its interface and functionality is similar to other wizard based installers, with only a few items of interest.
- Installation as a service: Tomcat will be installed as a Windows service no matter what setting is selected. Using the checkbox on the component page sets the service as 'auto' startup, so that Tomcat is automatically started when Windows starts. For optimal security, the service should be run as a separate user, with reduced permissions (see the Windows Services administration tool and its documentation).
- Java location: The installer will provide a default JRE to use to run the service. The installer uses the registry to determine the base path of a Java 7 or later JRE, including the JRE installed as part of the full JDK. When running on a 64-bit operating system, the installer will first look for a 64-bit JRE and only look for a 32-bit JRE if a 64-bit JRE is not found. If a JRE cannot be found when running on a 64-bit operating system, the installer will look for a 64-bit JDK. Finally, if a JRE or JDK has not been found, the installer will try to use the
JAVA_HOME
environment variable. It is not mandatory to use the default JRE detected by the installer. Any installed Java 7 or later JRE (32-bit or 64-bit) may be used. - Tray icon: When Tomcat is run as a service, there will not be any tray icon present when Tomcat is running. Note that when choosing to run Tomcat at the end of installation, the tray icon will be used even if Tomcat was installed as a service.
- Defaults: The defaults used by the installer may be overridden by use of the
/C=<config file>
command line argument. The configuration file uses the formatname=value
with each pair on a separate line. The names of the available configuration options are:- JavaHome
- TomcatPortShutdown
- TomcatPortHttp
- TomcatPortAjp
- TomcatMenuEntriesEnable
- TomcatShortcutAllUsers
- TomcatServiceDefaultName
- TomcatServiceName
- TomcatServiceFileName
- TomcatServiceManagerFileName
- TomcatAdminEnable
- TomcatAdminUsername
- TomcatAdminPassword
- TomcatAdminRoles
/C=...
along with/S
and/D=
it is possible to perform fully configured unattended installs of Apache Tomcat. - Refer to the Windows Service How-To for information on how to manage Tomcat as a Windows service.
The installer will create shortcuts allowing starting and configuring Tomcat. It is important to note that the Tomcat administration web application can only be used when Tomcat is running.
Unix daemon
Tomcat can be run as a daemon using the jsvc tool from the commons-daemon project. Source tarballs for jsvc are included with the Tomcat binaries, and need to be compiled. Building jsvc requires a C ANSI compiler (such as GCC), GNU Autoconf, and a JDK.
Before running the script, the
JAVA_HOME
environment variable should be set to the base path of the JDK. Alternately, when calling the ./configure
script, the path of the JDK may be specified using the --with-java
parameter, such as ./configure --with-java=/usr/java
.Using the following commands should result in a compiled jsvc binary, located in the
$CATALINA_HOME/bin
folder. This assumes that GNU TAR is used, and that CATALINA_HOME
is an environment variable pointing to the base path of the Tomcat installation.Please note that you should use the GNU make (gmake) instead of the native BSD make on FreeBSD systems.
Tomcat can then be run as a daemon using the following commands.
![Linux Linux](https://i.stack.imgur.com/Y8bDB.png)
When running on Java 9 you will need to additionally specify the following when starting jsvc to avoid warnings on shutdown.
You may also need to specify
-jvm server
if the JVM defaults to using a server VM rather than a client VM. This has been observed on OSX.jsvc has other useful parameters, such as
-user
which causes it to switch to another user after the daemon initialization is complete. This allows, for example, running Tomcat as a non privileged user while still being able to use privileged ports. Note that if you use this option and start Tomcat as root, you'll need to disable the org.apache.catalina.security.SecurityListener
check that prevents Tomcat starting when running as root.jsvc --help
will return the full jsvc usage information. In particular, the -debug
option is useful to debug issues running jsvc.The file
$CATALINA_HOME/bin/daemon.sh
can be used as a template for starting Tomcat automatically at boot time from /etc/init.d
with jsvc.Note that the Commons-Daemon JAR file must be on your runtime classpath to run Tomcat in this manner. The Commons-Daemon JAR file is in the Class-Path entry of the bootstrap.jar manifest, but if you get a ClassNotFoundException or a NoClassDefFoundError for a Commons-Daemon class, add the Commons-Daemon JAR to the -cp argument when launching jsvc.
Notice: This comments section collects your suggestions on improving documentation for Apache Tomcat.
If you have trouble and need help, read Find Help page and ask your question on the tomcat-users mailing list. Do not ask such questions here. This is not a Q&A section.
The Apache Comments System is explained here. Comments may be removed by our moderators if they are either implemented or considered invalid/off-topic.
If you have trouble and need help, read Find Help page and ask your question on the tomcat-users mailing list. Do not ask such questions here. This is not a Q&A section.
The Apache Comments System is explained here. Comments may be removed by our moderators if they are either implemented or considered invalid/off-topic.