|
|
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)] |
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