Tomcat Installieren: Unterschied zwischen den Versionen
(Updates für Stretch) |
|||
Zeile 3: | Zeile 3: | ||
== Allgemein == | == Allgemein == | ||
[http://tomcat.apache.org/ Apache Tomcat] ist ein Webserver (HTTP-Server), der in der Programmiersprache Java entwickelt ist. | [http://tomcat.apache.org/ 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 [http://de.wikipedia.org/wiki/Servlet Java-Servlets] und [http://de.wikipedia.org/wiki/JSP Java Server Pages (JSP)]. | ||
Er dient in erster Linie dazu, dynamische Web-Anwendungen zu betreiben, die ebenfalls in Java programmiert sind. | |||
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 == | ||
Zeile 13: | Zeile 11: | ||
Dazu muss für jede Tomcat-Instanz die Option "Betrieb eines eigenen Serverdienstes" gebucht werden. Im Bereich des Shared Hosting ist die Option kostenpflichtig. | 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. | 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. | ||
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: | 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") | # 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) | # wieviele IP-Ports reserviert werden sollen (in der folgenden Anleitung verwenden wir zwei nicht-privilegierte Ports, 30001 und 30002) | ||
== Installation == | == Installation == | ||
Auf den Hostsharing-Servern | Auf den Hostsharing-Servern ist das Debian-Paket "tomcat8-user" installiert. Es stellt den | ||
Apache Tomcat Server in der Version 8.5.x für den Betrieb als normaler (nicht privilegierter) User bereit. | |||
Dabei wird die zentral installierte Tomcat-Software benutzt, die über Betriebssystem-Updates mit | Dabei wird die zentral installierte Tomcat-Software benutzt, die über Betriebssystem-Updates mit Sicherheits-Updates versorgt wird. | ||
versorgt wird. | |||
Für die Installation der Konfigurations-Dateien in Heimat-Verzeichnis des Benutzers wird folgender Befehl | Für die Installation der Konfigurations-Dateien in Heimat-Verzeichnis des Benutzers wird folgender Befehl | ||
Zeile 33: | Zeile 29: | ||
xyz00-tomcat@h00:~$ tomcat8-instance-create tomcat | xyz00-tomcat@h00:~$ tomcat8-instance-create tomcat | ||
Dieser Befehl legt ein Verzeichnis "tomcat" mit der üblichen | Ich bevorzuge das catalina.sh-Startskript zum Testen: | ||
xyz00-tomcat@h00:~$ cp /usr/share/tomcat8/bin/catalina.sh tomcat/bin/ | |||
Dieser Befehl legt ein Verzeichnis "tomcat" mit der üblichen Dateistruktur für einen Tomcat-Server an: | |||
tomcat/ | tomcat/ | ||
Zeile 48: | Zeile 48: | ||
tomcat/temp/ | tomcat/temp/ | ||
tomcat/bin/ | tomcat/bin/ | ||
tomcat/bin/catalina.sh | |||
tomcat/bin/setenv.sh | tomcat/bin/setenv.sh | ||
tomcat/bin/startup.sh | tomcat/bin/startup.sh | ||
tomcat/bin/shutdown.sh | tomcat/bin/shutdown.sh | ||
In der Hauptsache muss die Konfigurationsdatei "server.xml" im Verzeichnis "~/tomcat/conf/" angepasst werden. | In der Hauptsache muss die Konfigurationsdatei "server.xml" im Verzeichnis "~/tomcat/conf/" angepasst werden. | ||
Zeile 59: | Zeile 58: | ||
<pre> | <pre> | ||
<?xml version= | <?xml version="1.0" encoding="UTF-8"?> | ||
<Server port="-1" shutdown="SHUTDOWN"> | <Server port="-1" shutdown="SHUTDOWN"> | ||
<Listener className="org.apache.catalina.startup.VersionLoggerListener" /> | |||
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> | |||
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> | <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> | ||
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> | <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> | ||
Zeile 67: | Zeile 69: | ||
<GlobalNamingResources> | <GlobalNamingResources> | ||
<Resource name="UserDatabase" auth="Container" | <Resource name="UserDatabase" auth="Container" | ||
type="org.apache.catalina.UserDatabase" | type="org.apache.catalina.UserDatabase" description="User database" | ||
factory="org.apache.catalina.users.MemoryUserDatabaseFactory" | factory="org.apache.catalina.users.MemoryUserDatabaseFactory" | ||
pathname="conf/tomcat-users.xml" /> | pathname="conf/tomcat-users.xml" /> | ||
</GlobalNamingResources> | </GlobalNamingResources> | ||
<Service name="Catalina"> | <Service name="Catalina"> | ||
<Connector | <Connector address="localhost" port="30001" protocol="AJP/1.3" redirectPort="443" /> | ||
<Engine name="Catalina" defaultHost=" | <Engine name="Catalina" defaultHost="localhost"> | ||
<Realm className="org.apache.catalina.realm.LockOutRealm"> | <Realm className="org.apache.catalina.realm.LockOutRealm"> | ||
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" | <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> | ||
</Realm> | </Realm> | ||
<Host name=" | <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> | ||
</Host> | </Host> | ||
Zeile 98: | Zeile 93: | ||
</pre> | </pre> | ||
Angepasst werden | Angepasst werden muss: | ||
* der IP-Port (im Beispiel 30001 am localhost Interface) | |||
* der IP-Port (im Beispiel | |||
In der Datei "~/tomcat/bin/setenv.sh" sollte die Umgebungs-Variable "CATALINA_PID" | In der Datei "~/tomcat/bin/setenv.sh" sollte die Umgebungs-Variable "CATALINA_PID" | ||
Zeile 109: | Zeile 103: | ||
Also etwa: | Also etwa: | ||
<pre> | <pre> | ||
CATALINA_PID=/home/pacs/ | CATALINA_PID=/home/pacs/xyz00/users/tomcat/tomcat/work/catalina.pid | ||
</pre> | </pre> | ||
am Anfang der Datei (etwa Zeile 4 oder 5) ergänzen. | am Anfang der Datei (etwa Zeile 4 oder 5) ergänzen. | ||
Zeile 181: | Zeile 175: | ||
*[http://tomcat.apache.org/ Apache Tomcat Homepage (Englisch)] | *[http://tomcat.apache.org/ Apache Tomcat Homepage (Englisch)] | ||
*[http://tomcat.apache.org/tomcat- | *[http://tomcat.apache.org/tomcat-8.5-doc/index.html Apache Tomcat Dokumentation (Version 8.5, Englisch)] | ||
*[http://wiki.apache.org/tomcat/FrontPage Apache Tomcat Wiki (Englisch)] | *[http://wiki.apache.org/tomcat/FrontPage Apache Tomcat Wiki (Englisch)] | ||
Version vom 28. Februar 2019, 18:29 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 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, 30001 und 30002)
Installation
Auf den Hostsharing-Servern ist das Debian-Paket "tomcat8-user" installiert. Es stellt den Apache Tomcat Server in der Version 8.5.x für den Betrieb als normaler (nicht privilegierter) User bereit. Dabei wird die zentral installierte Tomcat-Software benutzt, die über Betriebssystem-Updates mit Sicherheits-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
Ich bevorzuge das catalina.sh-Startskript zum Testen:
xyz00-tomcat@h00:~$ cp /usr/share/tomcat8/bin/catalina.sh tomcat/bin/
Dieser Befehl legt ein Verzeichnis "tomcat" mit der üblichen Dateistruktur 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/catalina.sh 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.startup.VersionLoggerListener" /> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <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" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service name="Catalina"> <Connector address="localhost" port="30001" protocol="AJP/1.3" redirectPort="443" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> </Host> </Engine> </Service> </Server>
Angepasst werden muss:
- der IP-Port (im Beispiel 30001 am localhost Interface)
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/xyz00/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 "~/tomcat/webapps/" für die Anwendungen konfiguriert. Wir legen dieses Verzeichnis an und kopieren eine minimale Anwendung hinein:
mkdir -p ~/tomcat/webapps/hello/WEB-INF/
Dort legen wir die Datei ~/tomcat/webapps/hello/WEB-INF/web.xml mit folgendem Inhalt an:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> </web-app>
Dazu eine einfache JSP-Datei ~/tomcat/webapps/hello/index.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html lang="de-de"> <body> <h1>Hallo Welt</h1> </body> </html>
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!
Dadurch ist die Mini-Anwendung unter der URL "http://examples.org/hello/" erreichbar.
Start des Tomcat Servers
Der Tomcat kann über die Skripte in "~/tomcat7/bin/" gestartet und gestoppt werden.
cd ~/tomcat ./bin/startup.sh
Log-Ausgaben des Servers sind in "~/tomcat/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 8.5, Englisch)
- Apache Tomcat Wiki (Englisch)