Tomcat Installieren
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 für jede Tomcat-Instanz die Option "Betrieb eines eigenen Serverdienstes" gebucht werden. Im Bereich des Shared Hosting ist die Option kostenpflichtig.
Diese Anleitung dokumentiert die Installation des Apache Tomcat Servers als Service-User in einem WEB-Paket bei Hostsharing. Mit der Einrichtung der Option "eigener Serverdienst" werden für die Paket-IP-Adresse einer oder mehrere IP-Ports reserviert. An diese Ports wird der eigene Serverdienst (also der Tomcat-Server) auf der paketeigenen IP-Adresse gebunden. Geben Sie bei der Bestellung der Option "Eigener Serverdienst" an:
- den Service User, mit dessen Rechten der Tomcat-Dienst laufen soll (also zum Beispiel "xyz00-tomcat")
- wieviele IP-Ports reserviert werden sollen (in der folgenden Anleitung verwenden wir zwei nicht-privilegierte Ports)
Installation
Auf den Hostsharing-Servern sind die Debian-Pakete "tomcat7-user" und "tomcat8-user" installiert. Sie ermöglichen den Betrieb eines Tomcat-Dienstes (Apache Tomcat Version 7.0.x bzw. Version 8.0.x) mit den Berechtigungen eines normalen Users. Dabei wird die zentral installierte Tomcat-Software benutzt, die über Betriebssystem-Updates mit Sicherhaits-Updates versorgt wird.
Für die Installation der Konfigurations-Dateien in Heimat-Verzeichnis des Benutzers wird folgender Befehl mit den Rechten des Service-Users aufgerufen:
xyz00-tomcat@h00:~$ tomcat8-instance-create tomcat
Dieser Befehl legt ein Verzeichnis "tomcat" mit der üblichen Datestruktur für einen Tomcat-Server an:
tomcat/ tomcat/conf/ tomcat/conf/server.xml tomcat/conf/context.xml tomcat/conf/logging.properties tomcat/conf/tomcat-users.xml tomcat/conf/catalina.properties tomcat/conf/web.xml tomcat/logs/ tomcat/webapps/ tomcat/work/ tomcat/temp/ tomcat/bin/ tomcat/bin/setenv.sh tomcat/bin/startup.sh tomcat/bin/shutdown.sh
In der Hauptsache muss die Konfigurationsdatei "server.xml" im Verzeichnis "~/tomcat/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.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 protocol="AJP/1.3" address="xyz00.hostsharing.net" port="31313" URIEncoding="UTF-8" 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="xyz00.hostsharing.net" appBase="webapps" unpackWARs="true" autoDeploy="true"> </Host> </Engine> </Service> </Server>
Angepasst werden müssen:
- der Paketname (im Beispiel xyz00) und
- der IP-Port (im Beispiel 31313)
In der Datei "~/tomcat/bin/setenv.sh" sollte die Umgebungs-Variable "CATALINA_PID" gesetzt werden. Das sorgt dafür, dass der Tomcat-Dienst über das Shutdown-Skript gestoppt wird, obwohl in der "server.xml"-Konfiguration kein Shutdown-Port definiert ist.
Also etwa:
CATALINA_PID=/home/pacs/xzy00/users/tomcat/tomcat/work/catalina.pid
am Anfang der Datei (etwa Zeile 4 oder 5) ergänzen.
Deployment einer Anwendung
In 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/
Nun können wir die HTTP-Requests, die an eine Domain im Paket gesendet werden, an den Tomcat weiterleiten. Das funktioniert über eine ".htaccess"-Datei, zum Beispiel im Verzeichnis "~/doms/example.org/htdocs":
DirectoryIndex disabled RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*) ajp://xyz00.hostsharing.net:31313/$1 [proxy,last]
Paketname und Port müssen wieder angepasst werden!
Dann können wir unsere Tomcat-Examples unter der URL "http://examples.org/examples/" erreichen.
Start des Tomcat Servers
Der Tomcat kann über die Skripte in "~/tomcat7/bin/" gestartet und gestoppt werden.
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 cd /home/pacs/xyz00/tomcat7 ./bin/catalina.sh start
Anmerkung: Die Export-Zeile gilt für 32-Bit Systeme (shared Hosting) für 64-Bit gilt: export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
Log-Ausgaben des Servers sind in "~/tomcat7/logs/catalina.out" zu finden.
Damit der Tomcat bei einem Reboot der Hostsharing-Server automatisch gestartet wird, kann "monit" als einfaches Überwachungswerkzeug genutzt werden. Ein Anleitung dazu gibt es in diesem Wiki: Monit_installieren Die Anleitung bezieht sich auf einen eigenen Apache-Webserver und muss entsprechend für Tomcat adaptiert werden.
Links
- Apache Tomcat Homepage (Englisch)
- Apache Tomcat Dokumentation (Version 7.*, Englisch)
- Apache Tomcat Wiki (Englisch)