Install Tomcat 6 on Debian (Lenny) with virtual hosts and Apache2 integration

Posted by sebastian Nov 24 2008

Dieser Artikel ist eine uberarbeitete Version meines Tomcat 5.5 Artikels. Ich habe diesmal die Installation des Open Bluedragon in einen eigenen Artikel getrennt beschrieben. Es soll Tomcat 6 unter Debian Lenny installiert werden und mit mehreren virtuellen Hosts betrieben werden. Tomcat 6 ist unter Debian leider nicht uber die Quellen zu beziehen, deshalb muss er manuell installiert werden. (Ubuntu bietet Tomcat 6 per apt-Installation an)

  1. Installation von Java 6 runtime:

Eine der folgenden Java JDK Installationen wählen:

1.1 OpenJDK view sourceprint? 1.aptitude install java6-runtime

1.2 Sun JDK (non-free) view sourceprint? 1.vim /etc/apt/sources view sourceprint? 1.deb http://ftp.de.debian.org/debian/ lenny main non-free 2.deb-src http://ftp.de.debian.org/debian/ lenny main non-free view sourceprint? 1.aptitude update 2.aptitude install sun-java6-jdk

Bemerkung: Nicht vergessen, dass eine andere Konfiguration beim Apache Connector erforderlich sein wird, sollte Sun JDK verwendet werden.

  1. Download Tomcat

Download Tomcat 6 von der Tomcat 6 Download Seite.

Zum Beispiel: view sourceprint? 1.wget http://apache.imsam.info/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz

3. Installation von Tomcat view sourceprint? 1.tar -xzvf apache-tomcat-6.0.18.tar.gz 2.mv apache-tomcat-6.0.18 /opt/tomcat

  1. Init-Skript erstellen:

    1.vim /etc/init.d/tomcat
    01.#!/bin/sh
    02.# Tomcat Init-Script
    03.case $1 in
    04.start)
    05.sh /opt/tomcat/bin/startup.sh
    06.;;
    07.stop)
    08.sh /opt/tomcat/bin/shutdown.sh
    09.;;
    10.restart)
    11.sh /opt/tomcat/bin/shutdown.sh
    12.sh /opt/tomcat/bin/startup.sh
    13.;;
    14.esac
    15.exit 0
    1.update-rc.d tomcat defaults
    
  2. Aktivieren des Tomcat Managers:

    1.vim /opt/tomcat/conf/tomcat-users.xml
    
    < ?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
    <role rolename="manager"/>
    <role rolename="admin"/>
    <user username="YOUR_USERNAME" password="YOUR_PASSWORD" roles="admin,manager"/>
    </tomcat-users>
    
  3. Start Tomcat:

    1./etc/init.d/tomcat start
    

Nun kann man den Tomcat Manager mit http://SERVER:8080/manager/html aufrufen.

  1. Installation des Apache2 Connectors

Tomcat besitzt zwar einen eingebauten Webserver, jedoch ist der Apache2 Webserver wesentlich leistungsfähiger außerdem sind so die Apache Module verwendbar. (mod_rewrite zum Beipiel)

view sourceprint? 1.aptitude install apache2 libapache2-mod-jk view sourceprint? 1.vim /etc/apache2/workers.properties view sourceprint? 1.workers.tomcat_home=/opt/tomcat 2.workers.java_home=/usr/lib/jvm/java-6-openjdk 3.ps=/ 4.worker.list=default 5.worker.default.port=8009 6.worker.default.host=localhost 7.worker.default.type=ajp13 8.worker.default.lbfactor=1

Bemerkung: Falls die non-free Java Runtime von Sun verwendet wird, muss "/usr/lib/jvm/java-6-openjdk” durch "/usr/lib/jvm/java-6-sun” ersetzt werden.

JK Konfigurationsdatei view sourceprint? 1.vim /etc/apache2/conf.d/jk.conf view sourceprint? 1.<ifmodule mod_jk.c> 2.JkWorkersFile /etc/apache2/workers.properties 3.JkLogFile /var/log/apache2/mod_jk.log 4.JkLogLevel error 5.</ifmodule> view sourceprint? 1./etc/init.d/apache2 stop 2./etc/init.d/tomcat restart 3./etc/init.d/apache2 start

  1. Neuen Virtuellen Host anlegen

Nun soll ein neuer VirtualHost angelegt werden. Dieser muss im Apache und im Tomcat angelegt werden.

6.1 Verzeichnisse anlegen view sourceprint? 1.mkdir /var/www/vhost1 2.mkdir /var/www/vhost1/htdocs 3.mkdir /var/www/vhost1/logs view sourceprint? 1.vim /etc/apache2/sites-available/vhost1

6.2 Apache:

01.<virtualhost www.testsrv.local>
02.JkMount /*.jsp default
03.ServerName www.testsrv.local
04.ServerAdmin servermaster@testsrv.local
05.DocumentRoot /var/www/vhost1/htdocs
06.ErrorLog /var/www/vhost1/logs/error.log
07.CustomLog /var/www/vhost1/logs/access.log common
08.<directory /var/www/vhost1/htdocs>
09.Options -Indexes
10.</directory>
11.</virtualhost>

Bemerkung: Man könnte auch alle Dateien an den Tomcat weiterleiten "JkMount /” oder alle Dateien innerhalb eines Verzeichnisses "JkMount /folder/":

System Message: WARNING/2 (data/howto-install-apache2-tomcat-openjdk.txt, line 153)

Literal block expected; none found.

1.a2ensite vhost1 2./etc/init.d/apache2 reload

6.3 Tomcat view sourceprint? 1.vim /opt/tomcat/conf/server.xml view sourceprint? 1.<!-- www.testsrv.local --> 2.<host name="www.testsrv.local" appBase="/var/www/vhost1" 3.unpackWARs="true" autoDeploy="true"> 4.<context path="" docBase="htdocs" debug="0" reloadable="true"/> 5.<valve className="org.apache.catalina.valves.AccessLogValve" 6.directory="/var/www/vhost1/logs" prefix="tomcat_access_" suffix=".log" 7.pattern="common" resolveHosts="false"/> 8.</host> view sourceprint? 1./etc/init.d/tomcat restart

Bemerkung: Man kann weitere Domains mit: view sourceprint? 1.<alias>additionaldomain.com</alias>

hinzufügen.

7. Testseite anlegen view sourceprint? 1.vim /var/www/vhost1/htdocs/test.jsp view sourceprint? 01.<html> 02.<head> 03.<title>Hello World</title> 04.</head> 05.<body> 06.<h1>Hello World</h1> 07.Today is: < %= new java.util.Date().toString() %> 08.</body> 09.</html>

Nun kann man durch den Aufruf von http://www.testsrv.local/test.jsp die Konfiguration/Installation testen.

Docutils System Messages

System Message: ERROR/3 (data/howto-install-apache2-tomcat-openjdk.txt, line 156); backlink

Unknown target name: "tomcat_access".