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)
- 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.
- 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
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
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>
Start Tomcat:
1./etc/init.d/tomcat start
Nun kann man den Tomcat Manager mit http://SERVER:8080/manager/html aufrufen.
- 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
- 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/":
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.
