How To Install Tomcat6 With SUN-Java And Apache2 Integration On Ubuntu 10.04 [Lucid Lynx] With Virtual Hosts

Author: Jaac
Last edited: 25-01-2011

Apache Tomcat (or Jakarta Tomcat or simply Tomcat) is an open source servlet container developed by the Apache Software Foundation (ASF). Tomcat implements the Java Servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, and provides a "pure Java" HTTP web server environment for Java code to run.

Tomcat should not be confused with the Apache web server, which is a C implementation of an HTTP web server; these two web servers are not bundled together. Apache Tomcat includes tools for configuration and management, but can also be configured by editing XML configuration files.

 

1 Preliminary Note

This tutorial is based on Ubuntu 10.04 Server (Lucid Lynx), so you should set up a basic Ubuntu 10.04 server installation with Apache or a LAMP Server before you continue with this tutorial (e.g. as shown in this tutorial: Installing Apache2 With PHP5 And MySQL Support On Ubuntu 10.04 (LAMP)). The system should have a static IP address. I use 192.168.1.100 as my IP address in this tutorial and server1.example.com as the hostname.

Make sure that you are logged in as root (type in

sudo su

to become root), because we must run all the steps from this tutorial as root user.

 

2 Installing Java Development Kit (JDK)

For easily adding a repository now and in the future you must install python-software-properties first:

apt-get install python-software-properties

Then run:

add-apt-repository "deb http://archive.canonical.com/ubuntu lucid partner"

Now update the Aptitude cache:

apt-get update

We will now install sun-java6-jdk which is available in the new repository, and openjdk-6-jdk:

apt-get install sun-java6-jdk openjdk-6-jdk

Accept the license agreement! with Ok and then Yes!

Let's make sure Ubuntu and our future Tomcat check the sun-java6-jdk package first:

update-alternatives --config java

Choose the number that matches with /usr/lib/jvm/java-6-sun/jre/bin/java

Now check the Java version by typing:

java -version

It should look a lot like this (depends on java version in repo!)

root@ubuntu:~# java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)

 

3 Installing Tomcat6

We can install Tomcat 6 via Aptitude like this:

apt-get install tomcat6 tomcat6-admin tomcat6-common tomcat6-docs tomcat6-examples tomcat6-user

 

3.1 Declaring users and roles

Usernames, passwords and roles (groups) can be defined centrally in a Servlet container.

In Tomcat 6.0 this is done in the /etc/tomcat6/tomcat-users.xml file:

vi /etc/tomcat6/tomcat-users.xml

and add the following:

<role rolename="manager"/>
<role rolename="admin"/>
<user username="YOUR_USERNAME" password="YOUR_PASSWORD" roles="manager,admin"/>

Make sure you replace YOUR_USERNAME and YOUR_PASSWORD with your credentials, then save and exit the file.

 

3.2 Restart Tomcat6 and have a first test

/etc/init.d/tomcat6 restart

Then use your browser to visit http://192.168.1.100:8080/ and verify that you get the default Tomcat page.

You should also be able to visit http://192.168.1.100:8080/manager/html with the credentials you have set above:

 

4 Integrate Tomcat6 on Apache2

First we install the Apache2 connector for the Tomcat Java servlet engine like this:

apt-get install libapache2-mod-jk

 

4.1 Configure the connector module

Now we can start configuring the connector module, first we create a new file which will hold our properties:

vi /etc/apache2/workers.properties

Add the following to the file:

workers.tomcat_home=/var/lib/tomcat6
workers.java_home=/usr/lib/jvm/java-6-sun
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

Save and exit the file.

 

4.2 Configure Apache2 to use the connector properties

Create a configuration file for Apache2 which will load when Apache starts:

vi /etc/apache2/conf.d/mod_jk.conf

Add the following to the file:

<IfModule mod_jk.c>
  JkWorkersFile /etc/apache2/workers.properties
  JkShmFile /var/log/apache2/mod_jk.shm
  JkLogFile /var/log/apache2/mod_jk.log
  JkLogLevel info
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
  JkRequestLogFormat "%w %V %T"
</IfModule>

Save and exit the file.

Share this page:

0 Comment(s)