Sebastian Mogilowskis Blog

Just another blog about administration, linux and other stuff

VirtualHosts,OpenBlueDragon with Tomcat 5.5, Apache2 (mod_jk) on Debian Etch

Bereits im März hat New Atlanta eine OpenSource Version von BlueDragon angekündigt. Nun wurde sie unter OpenBlueDragon veröffentlicht. Da sich BlueDragon durchaus mit dem Coldfusion Server von Adobe messen kann, ist OpenBlueDragon ideal um Coldfusion in eine Linux/MySQL Umgebung zu integrieren und so eine direkte Konkurrenz zu der sonst üblichen PHP/MySQL Umgebungen werden.

Nach dieser Anleitung soll OpenBlueDragon mit Tomcat 5.5 unter Debian Etch installiert werden. Anschließend soll Tomcat mit mod_jk mit dem Apache2 verbunden werden.

Natürlich kann diese Anleitung auch verwendet werden, um nur den Tomcat zusammen mit Apache einzurichten. In diesem Fall müssen nur die OpenBlueDragon Abschnitte ausgelassen werden.

Es gibt verschiedene Gründe warum man Tomcat zusammen mit Apache einsetzt. Der Apache kann langsame Verbindugen Buffern, man kann mit weitere Funktionen benutzen wie PHP oder Perl, Apache Module stehen zur Verfügung wie mod_rewrite außerdem können die Virtuellen Hosts so konfiguriert werden, dass sie eigene Tomcat Instanzen benutzen.
.

Für die Installation von Tomcat wird jedoch zuerst noch das Sun Java JDK gebraucht. Um diese zu installieren mussen in der /etc/apt/sources.list die “non-free” Pakete hinzugefügt werden:

deb-src http://ftp.debian.org/debian/ main 

Anschließend kann mit

# aptitude update
# aptitude install sun-java5-jdk

das Sun Java JDK installiert werden.

Nun kann Apache Tomcat installiert werden:

# aptitude install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps

Um zu überprüfen ob Tomcat läuft, kann man folgende URL im Browser aufrufen: http://SERVER:8180

Als nächstes muss ein Benutzer konfiguriert werden, mit dem Tomcat verwaltet werden soll.

# /etc/init.d/tomcat5.5 stop
# vim /var/lib/tomcat5.5/conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="admin"/>
<role rolename="manager"/>
<role rolename="tomcat"/>
<user username="admin"
password="foobar"
roles="tomcat,admin,manager"/>
</tomcat-users>

# vim /etc/default/tomcat5.5
TOMCAT5_SECURITY=no
# /etc/init.d/tomcat5.5 start

Natürlich sollte das Passwort durch ein eigenes ersetzt werden ! Das deaktivieren von TOMCAT5_SECURITY ist notwendig um Zugriff auf die Administration zu erhalten. Sollte man die Administration nicht benötigen kann diesen Schritt natürlich weglassen oder nach dem festlegen der Einstellungen wieder aktivieren.

Nun kann man sich in den Tomcat Manager einloggen http://SERVER:8180/manager/html sowie in den Administrator http://SERVER:8180/admin

Dort kann im Abschnitt “Deploy” das openbluedragon.war Paket hochgeladen werden.

Nach dem Neustart von Tomcat “/etc/init.d/tomcat5.5 restart” findet man openbluedragon in der Applications List im Tomcat Manager.

Installation Apache2 mit Tomcat-Connector

Tomcat besitzt zwar einen eingebauten Webserver, jedoch ist der Apache2 Webserver wesentlich Leistungsfähiger.

Installation:

# aptitude install apache2 libapache2-mod-jk
# vim /etc/apache2/workers.properties

workers.tomcat_home=/usr/share/tomcat5.5
workers.java_home=/usr/lib/jvm/java-1.5.0-sun-1.5.0.14
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1
JK Konfigurationsdatai
# vim /etc/apache2/conf.d/jk.conf
<IfModule mod_jk.c>
    JkWorkersFile /etc/apache2/workers.properties
    JkLogFile /var/log/apache2/mod_jk.log
    JkLogLevel error
</IfModule>
# /etc/init.d/apache2 stop
# /etc/init.d/tomcat5.5 restart
# /etc/init.d/apache2 start

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

Verzeichnise vorbereiten:

# mkdir /var/www/vhost1
# mkdir /var/www/vhost1/htdocs
# mkdir /var/www/vhost1/logs

WEB-INF kopieren:

# cp /var/lib/tomcat5.5/webapps/openbluedragon/WEB-INF /var/www/vhost1/htdocs/

VirtualHost im Apache anlegen:

# vim /etc/apache2/sites-available/vhost1
<VirtualHost www.testsrv.local>
    JkMount /*.cfm default
    JkMount /*.cfc default
    JkMount /*.jsp default
    ServerName www.testsrv.local
    ServerAdmin servermaster@testsrv.local
    DocumentRoot /var/www/vhost1/htdocs
    ErrorLog /var/www/vhost1/logs/error.log
    CustomLog /var/www/vhost1/logs/access.log common
    <Location /WEB-INF/ >
      AllowOverride None
      deny from all
    </Location>
</VirtualHost>
# a2ensite vhost1
# /etc/init.d/apache2 reload

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

Host im Tomcat anlegen:

# vim /etc/tomcat5.5/server.xml
<!-- www.testsrv.local -->
<Host name="www.testsrv.local" appBase="/var/www/vhost1"
      unpackWARs="true" autoDeploy="true">
      <Context path="" docBase="htdocs" debug="0" reloadable="true"/>
      <Valve className="org.apache.catalina.valves.AccessLogValve"
             directory="/var/www/vhost1/logs"  prefix="tomcat_access_" suffix=".log"
             pattern="common" resolveHosts="false"/>
</Host>

Zum Schluss muss man den Tomcat sowie den Apache Server neu starten:

# /etc/init.d/tomcat5.5 restart
# /etc/init.d/apache2 restart

[UPDATE]

Von diesen Artikel ist eine neue Version Verfügbar Tomcat 6 mit Lenny und OpenBlueDragon auf Tomcat 6

, , , , , , , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.