Tomcat Installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 7: Zeile 7:
Basis-Technologien sind [http://de.wikipedia.org/wiki/Servlet Java-Servlets] und [http://de.wikipedia.org/wiki/JSP Java Server Pages (JSP)].
Basis-Technologien sind [http://de.wikipedia.org/wiki/Servlet Java-Servlets] und [http://de.wikipedia.org/wiki/JSP Java Server Pages (JSP)].


=== Spezielle Installation bei Hostsharing ===
== Spezielle Installation bei Hostsharing ==


In jedem dynamischen Webhosting-Paket der Hostsharing eG können einer (oder mehrere) Tomcat-Webserver betrieben werden.
In jedem dynamischen Webhosting-Paket der Hostsharing eG können einer (oder mehrere) Tomcat-Webserver betrieben werden.
Zeile 82: Zeile 82:
* der IP-Port (im Beispiel 31313)
* der IP-Port (im Beispiel 31313)


=== Art der Installation ===
== Deployment einer Anwendung ==


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.
Im der Beispiel-Konfiguration wurde das Verzeichnis "~/webapps/default" für die Anwendungen konfiguriert.
Wir legen dieses Verzeichnis an und kopieren eine Beispielanwendung hinein:


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.
<pre>
 
cd /home/pacs/xyz00
==== Apache Webserver als Proxy: mod_proxy ====
mkdir webapps
 
mkdir webapps/default
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:
cp -a tomcat7/webapps/examples webapps/default/
 
</pre>
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
** ~/etc/tomcat Für die Konfigurationsdateien des Tomcat.
** ~/tomcat/ Für Symlinks in wichtige Verzeichnisse.
** ~/var/cache/
** ~/var/cache/tomcat/ Für installierte Anwendungen (zur Laufzeit).
** ~/var/cache/tomcat/_tmp/ Für temporäre Dateien des Tomcat (zur Laufzeit).
** ~/webapps/ Für Anwendungen. Jeder konfigurierte Host bekommt ein Unterverzeichnis.
** ~/webapps/xyz00.hostsharing.net/ Anwendungen des Default-Host.
** ~/webapps/tomcat.example.com/ Anwendungen einer weiteren Domain mit vorkonfigurierter Subdomain tomcat.
* Dateien
** ~/etc/tomcat/server.xml Die Tomcat Konfigurationsdatei.
** ~/etc/tomcat/tomcat-users.xml Tomcats servserseitige Benutzerverwaltung.
** ~/etc/tomcat/web.xml Konfigurationsdatei des Servlet-Containers.
* Symlinks
** ~/tomcat/conf Link auf ~/etc/tomcat
** ~/tomcat/work Link auf ~/var/cache/tomcat
** ~/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 [[Cron| 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
 
=== Logging ===
 
Die Log-Datei zum Status des Tomcat und den Meldungen beim Starten kann man sich als Paket-Admin ansehen per
 
less ~/var/catalina.out
 
=== 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 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.}}


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


*[http://tomcat.apache.org/ Apache Tomcat Homepage (Englisch)]
*[http://tomcat.apache.org/ Apache Tomcat Homepage (Englisch)]

Version vom 5. Januar 2012, 14:10 Uhr

Apache Tomcat installieren

Allgemein

Apache Tomcat ist ein Webserver (HTTP-Server), der in der Programmiersprache Java entwickelt ist. Er dient in erster Linie dazu, dynamische Web-Anwendungen zu betreiben, die ebenfalls in Java programmiert sind. Basis-Technologien sind Java-Servlets und Java Server Pages (JSP).

Spezielle Installation bei Hostsharing

In jedem dynamischen Webhosting-Paket der Hostsharing eG können einer (oder mehrere) Tomcat-Webserver betrieben werden.

Dazu muss die die kostenpflichtige Option "Daemon M" gebucht werden.

Diese Anleitung dokumentiert die Installation des Apache Tomcat Servers als Paket-Admin in einem Dynamic-Web Paket bei Hostsharing. Mit der Einrichtung der Option "Daemon" wird für das Paket einer oder mehrere IP-Ports reserviert, an die der eigene Daemon (also der Tomcat-Server) auf der paketeigenen IP-Adresse gebunden wird.

Installation

Die Tomcat-Distribution kann von den Apache-Servern heruntergeladen werden. Wir empfehlen die Installation des Tomcats im Paket, für die Tomcat-Software wird nur ca. 8 MB Speicherplatz benötigt.

Zur Zeit ist die Version 7.0.23 aktuell.

Die Software wird heruntergeladen und entpackt. Das Installationsverzeichnis wird in "tomcat7" umbenannt:

cd /home/pacs/xyz00
wget http://apache.mirror.iphh.net/tomcat/tomcat-7/v7.0.23/bin/apache-tomcat-7.0.23.tar.gz
tar xzf apache-tomcat-7.0.23.tar.gz
mv apache-tomcat-7.0.23 tomcat7
rm apache-tomcat-7.0.23.tar.gz

In der Hauptsache muss die Konfigurationsdatei "server.xml" im Verzeichnis "~/tomcat7/conf/" angepasst werden.

Beispiel für eine minimale "server.xml":

<?xml version='1.0' encoding='utf-8'?>
<Server port="-1" shutdown="SHUTDOWN">

  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <GlobalNamingResources>

    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />

  </GlobalNamingResources>

  <Service name="Catalina">

    <Connector 
           address="xyz00.hostsharing.net" port="31313" 
           protocol="AJP/1.3" redirectPort="443" />

    <Engine name="Catalina" defaultHost="xyz00.hostsharing.net">

      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="peh09.hostsharing.net" 
              appBase="../webapps/default" 
              unpackWARs="true" autoDeploy="true">
      </Host>

    </Engine>
  </Service>
</Server>

Angepasst werden müssen:

  • der Paketname (im Beispiel xyz00) und
  • der IP-Port (im Beispiel 31313)

Deployment einer Anwendung

Im der Beispiel-Konfiguration wurde das Verzeichnis "~/webapps/default" für die Anwendungen konfiguriert. Wir legen dieses Verzeichnis an und kopieren eine Beispielanwendung hinein:

cd /home/pacs/xyz00
mkdir webapps
mkdir webapps/default
cp -a tomcat7/webapps/examples webapps/default/


Links