Tomcat Installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
K (Kategorie:Eigene Daemons hinzugefügt)
(→‎Anwendung: Tomcat Manager: Hinweis ergänzt, dass man (zumindest in V5.5) den port mit angeben muss!)
Zeile 172: Zeile 172:


Um als Benutzer Zugriff auf die Manager-Anwendung zu bekommen muss in der Benutzerverwaltung tomcat-users.xml dem Benutzer die Rolle  manager zugewiesen sein.
Um als Benutzer Zugriff auf die Manager-Anwendung zu bekommen muss in der Benutzerverwaltung tomcat-users.xml dem Benutzer die Rolle  manager zugewiesen sein.
Im Browser kann man dann den manager aufrufen per (8080 ist der individuell zugewiesene Port!)
http://www.example.com:8080/manager
z.B. Auflistung der laufenden Apps
http://www.example.com:8080/manager/list
z.B. Status-Seite
http://www.example.com:8080/manager/status
Falle: Lässt man den zugewiesenen Port weg, bekommt man (zumindest in Tomcat 5.5)  überraschender Weise einen Fehler "403 Forbidden".
Siehe hierzu auch [http://www.apacheserver.net/tomcat-manager-not-working-at192997.htm http://www.apacheserver.net/tomcat-manager-not-working-at192997.htm]


{{Textkasten|rot|Achtung|Die Manager-Anwendung bringt gewisse Risiken mit sich, da über sie der komplette Tomcat gesteuert (z.B. deploy und undeploy von Anwendungen) werden kann! Bitte nur aktivieren, wenn man weiß was man tut.}}
{{Textkasten|rot|Achtung|Die Manager-Anwendung bringt gewisse Risiken mit sich, da über sie der komplette Tomcat gesteuert (z.B. deploy und undeploy von Anwendungen) werden kann! Bitte nur aktivieren, wenn man weiß was man tut.}}


=== Links ===
=== Links ===

Version vom 2. Dezember 2010, 21:01 Uhr

Apache Tomcat installieren

Allgemein

Allgemeine Hinweise

Diese Anleitung dokumentiert die Installation des Apache Tomcat Servers als Paket-Admin in einem Dynamic-Web Paket bei Hostsharing. Ist die entsprechende Tarif-Option gebucht worden, richtet ein Hostmaster einmalig die Tomcat-Umgebung im Paket ein und sie kann dann genutzt werden. Der Paket-Admin kann anschließend weitere Domains im Tomcat konfigurieren, Anwendungen aufsetzen und den Tomcat starten oder beenden.

Das Installationsskript kann vom Paket-Admin auch später weitere Male aufgerufen werden, wenn er selbst den Tomcat erneut installieren möchte. Dazu muss allerdings vorher die aktuelle Installation entfernt oder verschoben sein.

Spezielle Installation bei Hostsharing

Jedes Paket mit gebuchter JSP-Option startet einen eigenen Tomcat, der jedoch durch eine zentrale Tomcat-Installation bereitgestellt wird. Lediglich die Anwendungs-, Arbeits- und Temp-Verzeichnisse sind in den Paketen eingerichtet und so für jede Tomcat-Instanz eindeutig und von den anderen getrennt.

Dieses Verhalten wird durch die Umgebungsvariablen CATALINA_HOME und CATALINA_BASE, die Tomcat zur Laufzeit auswertet, ermöglicht. Unter CATALINA_HOME liegt die zentrale Tomcat-Installation und unter CATALINA_BASE werden die oben genannten Verzeichnisse gesucht.

Systemumgebung und verwendete Versionen

Version der Java Laufzeitumgebung: 1.6.0_10

Version des Apache Tomcat: 5.5.27

Das Start- und Stop-Skript /opt/tomcat/bin/rc-tomcat setzt die entsprechenden bzw. notwendigen Umgebungsvariablen automatisch.


Installation

Voraussetzungen

Für eine zulässige und erfolgreiche Installation des Tomcat in einem Paket müssen folgende Dinge gegeben sein:

  • Man muss Paket-Admin eines Dynamic-Web Pakets sein
  • Gebuchte JSP-Option (per Email an bestellung(at)hostsharing.net)
  • Portvermerk in /etc/ports oder eigene IP für das Paket und entsprechende iptables-Regeln - je nach Installationsmodus (bei der Bestellung angeben, Preise hier)

Art der Installation

Es stehen zwei Installationsmodi zur Verfügung. In beiden Modi läuft der Tomcat jedoch mit den Rechten des Paket-Users und kann somit nur auf nicht-privilegierte Ports (> 1024) zugreifen.

Einer der Modi muss bei der Bestellung der JSP-Option angegeben werden, damit die Hostmaster den Tomcat entsprechend installieren und die entsprechenden Einträge vornehmen können.

Apache Webserver als Proxy: mod_proxy

Hierbei läuft vor dem Tomcat Server der Apache Webserver mit mod_proxy und leitet alle Anfragen an den Tomcat weiter. Er arbeitet als Proxy. Dieses Verhalten wird über .htaccess-Dateien konfiguriert, die in den entsprechenden Subdomain-Verzeichnissen liegen müssen und eine bestimmte Rewrite-Regel beinhalten. Eine beispielhafte .htaccess-Datei sieht folgendermaßen aus:

RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$
RewriteBase /
RewriteRule ^(.*)$ http://www.example.com:30031/${escape:$1} [P,L]

Die benutzten Ports werden von den Hostmastern in der Datei /etc/ports eingetragen.

Eigene Paket-IP: iptables

In dieser Konfiguration läuft der Tomcat auf einer eigenen IP und dem (Standard-)Port 8080, weswegen kein Eintrag in /etc/ports notwendig ist. Alle Anfragen an Port 80 werden über iptables-Regeln an den Tomcat weiter gereicht. Das Paket bekommt eine eigene IP und die Regeln müssen von einem Hostmaster in iptables eingetragen werden.

Installationsskript

Das Installationsskript steht auf allen Hives mit Dynamic-Web Paketen unter dem Pfad /opt/tomcat/bin/install-tomcat zur Verfügung und hat folgende Aufrufsyntax:

xyz00@host:~$ /opt/tomcat/bin/install-tomcat -h

Usage: install-tomcat [OPTIONS]

This script creates all necessary directories, files and links to run Apache Tomcat in your package. You must invoke it as a package user.

-h, --help show this help
-m, --mode set install mode
mod_proxy: read ports from /etc/ports (default)
iptables : use default ports 8005, 8080 and 8443
-t, --test set test mode, does not create anything

xyz00@host:~$

Das Skript prüft zuerst ob es von einem gültigen Paket-User (nur Paket-Admins) aufgerufen wurde, ob die entsprechenden Ports in /etc/ports verfügbar sind (nur im Modus mod_proxy) und keine Verzeichnisse oder Dateien einer vorherigen Installation vorhanden sind. Entsprechende Fehler mit Hilfevorschlägen werden ausgegeben.

Wird das Skript mit dem Parameter -t aufgerufen; beendet es sich nach diesen Prüfungen selbst.

Wird es ohne Parameter oder mit dem Parameter -m aufgerufen, installiert es alle notwendigen Dateien und gibt entsprechende Meldungen aus.

Angelegte Verzeichnisse und Dateien

  • Verzeichnisse

o ~/etc/tomcat Für die Konfigurationsdateien des Tomcat. o ~/tomcat/ Für Symlinks in wichtige Verzeichnisse. o ~/var/cache/ o ~/var/cache/tomcat/ Für installierte Anwendungen (zur Laufzeit). o ~/var/cache/tomcat/_tmp/ Für temporäre Dateien des Tomcat (zur Laufzeit). o ~/webapps/ Für Anwendungen. Jeder konfigurierte Host bekommt ein Unterverzeichnis. o ~/webapps/xyz00.hostsharing.net/ Anwendungen des Default-Host. o ~/webapps/tomcat.example.com/ Anwendungen einer weiteren Domain mit vorkonfigurierter Subdomain tomcat.

  • Dateien

o ~/etc/tomcat/server.xml Die Tomcat Konfigurationsdatei. o ~/etc/tomcat/tomcat-users.xml Tomcats servserseitige Benutzerverwaltung. o ~/etc/tomcat/web.xml Konfigurationsdatei des Servlet-Containers.

  • Symlinks

o ~/tomcat/conf Link auf ~/etc/tomcat o ~/tomcat/work Link auf ~/var/cache/tomcat o ~/tomcat/temp Link auf ~/var/cache/tomcat/_tmp

Server starten und beenden

Das Start- und Stop-Skript findet man unter dem Pfad /opt/tomcat/bin/rc-tomcat und es hat folgende Aufrufsyntax:

xyz00@host:~$ /opt/tomcat/bin/rc-tomcat
Using CATALINA_BASE: /home/pacs/xyz00/tomcat
Using CATALINA_HOME: /opt/tomcat/current55
Using CATALINA_TMPDIR: /home/pacs/xyz00/tomcat/temp
Using JRE_HOME: /opt/java/current60
Usage: rc-tomcat ( commands ... )
commands:
debug Start Catalina in a debugger
debug -security Debug Catalina with a security manager
jpda start Start Catalina under JPDA debugger
run Start Catalina in the current window
run -security Start in the current window with security manager
start Start Catalina in a separate window
start -security Start in a separate window with security manager
stop Stop Catalina
stop -force Stop Catalina (followed by kill -KILL)
version What version of tomcat are you running?
xyz00@host:~$

Weitergehende Informationen

Start des Tomcat bei Server Reboot

Der Tomcat-Prozess wird von Hand gestartet und nicht von den Hostmastern überwacht. Es liegt in deiner Verantwortung nach einem Reboot des Hostsharing-Servers deinen Tomcat neu zu starten. Das geht am einfachsten über einen Eintrag in der Crontab:

JAVA_HOME=/opt/java/current60

HOME=/home/pacs/xyz99
PATH=$JAVA_HOME/bin:/usr/bin:/bin:/usr/local/bin

# Starte Tomcat beim Reboot

@reboot /opt/tomcat/bin/rc-tomcat start


Anwendung: Tomcat Dokumentation

Die Tomcat-Dokumentation findet man online im unten angegebenen Link. Außerdem enthält die Server-Konfiguration in der Datei server.xml einen auskommentierten Bereich, der die Anwendung "Tomcat Dokumentation" für einen bestimmten Host unter dem Pfad /tomcat-docs einbindet. Um diese Anwendung für einen bestimmten Host zu aktivieren, muss vor dem Starten des Tomcat folgender Bereich im jeweiligen Host-Bereich der server.xml aus dem Kommentar genommen werden.

<Context displayName="Tomcat Documentation"
   docBase="${catalina.home}/webapps/tomcat-docs"
   path="/tomcat-docs"
   antiResourceLocking="false" antiJARLocking="false"/>

Anwendung: Tomcat Manager

Die Server-Konfiguration enthält in der Datei server.xml einen auskommentierten Bereich, der die Anwendung "Tomcat Manager" für einen bestimmten Host unter dem Pfad /manager einbindet. Um diese Anwendung für einen bestimmten Host zu aktivieren muss vor dem Starten des Tomcat folgender Bereich im jeweiligen Host der server.xml aus dem Kommentar genommen werden.

<Context displayName="Tomcat Manager"
   docBase="${catalina.home}/server/webapps/manager"
   path="/manager" privileged="true"
   antiResourceLocking="false" antiJARLocking="false">
 

Um als Benutzer Zugriff auf die Manager-Anwendung zu bekommen muss in der Benutzerverwaltung tomcat-users.xml dem Benutzer die Rolle manager zugewiesen sein.

Im Browser kann man dann den manager aufrufen per (8080 ist der individuell zugewiesene Port!)

http://www.example.com:8080/manager

z.B. Auflistung der laufenden Apps

http://www.example.com:8080/manager/list

z.B. Status-Seite

http://www.example.com:8080/manager/status

Falle: Lässt man den zugewiesenen Port weg, bekommt man (zumindest in Tomcat 5.5) überraschender Weise einen Fehler "403 Forbidden". Siehe hierzu auch http://www.apacheserver.net/tomcat-manager-not-working-at192997.htm

Achtung

Die Manager-Anwendung bringt gewisse Risiken mit sich, da über sie der komplette Tomcat gesteuert (z.B. deploy und undeploy von Anwendungen) werden kann! Bitte nur aktivieren, wenn man weiß was man tut.


Links

oApache Tomcat Homepage (Englisch)

oApache Tomcat Dokumentation (Version 5.*, Englisch)

oApache Tomcat FAQ (Englisch)