<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ph</id>
	<title>Hostsharing Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ph"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Ph"/>
	<updated>2026-04-25T22:43:20Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Tomcat_Installieren&amp;diff=5748</id>
		<title>Tomcat Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Tomcat_Installieren&amp;diff=5748"/>
		<updated>2021-12-30T11:48:35Z</updated>

		<summary type="html">&lt;p&gt;Ph: unixsocket for monit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Apache Tomcat installieren&lt;br /&gt;
&lt;br /&gt;
== Allgemein ==&lt;br /&gt;
&lt;br /&gt;
[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)].&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe von Apache Tomcat ist bei Hostsharing das Hosting von komplexen Java Web-Applikationen problemlos möglich.&lt;br /&gt;
&lt;br /&gt;
== Spezielle Installation bei Hostsharing ==&lt;br /&gt;
&lt;br /&gt;
In jedem dynamischen Webhosting-Paket der Hostsharing eG können einer (oder mehrere) Tomcat-Webserver betrieben werden.&lt;br /&gt;
&lt;br /&gt;
Dazu muss für jede Tomcat-Instanz die Option &amp;quot;Betrieb eines eigenen Serverdienstes&amp;quot; gebucht werden. Im Bereich des Shared Hosting ist die Option kostenpflichtig. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung dokumentiert die Installation des Apache Tomcat Servers als Service-User in einem WEB-Paket bei Hostsharing.  Mit der Einrichtung der Option &amp;quot;eigener Serverdienst&amp;quot; werden für die Paket-IP-Adresse einer oder mehrere IP-Ports reserviert. An diese Ports wird der eigene Serverdienst (also der Tomcat-Server) am Localhost-Interface gebunden.&lt;br /&gt;
&lt;br /&gt;
Geben Sie bei der Bestellung der Option &amp;quot;Eigener Serverdienst&amp;quot; an:&lt;br /&gt;
&lt;br /&gt;
# den Service User, mit dessen Rechten der Tomcat-Dienst laufen soll (also zum Beispiel &amp;quot;xyz00-tomcat&amp;quot;)&lt;br /&gt;
# wieviele IP-Ports reserviert werden sollen (in der folgenden Anleitung verwenden wir drei nicht-privilegierte Ports: &lt;br /&gt;
* 38005 als &amp;quot;Shutdown&amp;quot;-Schnittstelle&lt;br /&gt;
* 38006 für eine AJP-Listener&lt;br /&gt;
* 38008 für den HTTP-Listener des Monit-Prozessmonitors&lt;br /&gt;
&lt;br /&gt;
== Installation == &lt;br /&gt;
&lt;br /&gt;
Auf den Hostsharing-Servern ist das Debian-Paket &amp;quot;tomcat9-user&amp;quot; installiert. Es stellt den &lt;br /&gt;
Apache Tomcat Server in der Version 9.0.x für den Betrieb als normaler (nicht privilegierter) User bereit.&lt;br /&gt;
Dabei wird die zentral installierte Tomcat-Software benutzt, die über Betriebssystem-Updates mit Sicherheits-Updates versorgt wird.&lt;br /&gt;
&lt;br /&gt;
Für die Installation der Konfigurations-Dateien in Heimat-Verzeichnis des Benutzers wird folgender Befehl&lt;br /&gt;
mit den Rechten des Service-Users aufgerufen:&lt;br /&gt;
&lt;br /&gt;
    xyz00-tomcat@h00:~$ tomcat9-instance-create tomcat&lt;br /&gt;
&lt;br /&gt;
Ich bevorzuge das catalina.sh-Startskript zum Testen:&lt;br /&gt;
&lt;br /&gt;
    xyz00-tomcat@h00:~$ cp /usr/share/tomcat9/bin/catalina.sh tomcat/bin/&lt;br /&gt;
&lt;br /&gt;
Dieser Befehl legt ein Verzeichnis &amp;quot;tomcat&amp;quot; mit der üblichen Dateistruktur für einen Tomcat-Server an:&lt;br /&gt;
&lt;br /&gt;
    bin&lt;br /&gt;
    bin/catalina.sh&lt;br /&gt;
    bin/setenv.sh&lt;br /&gt;
    bin/shutdown.sh&lt;br /&gt;
    bin/startup.sh&lt;br /&gt;
    conf&lt;br /&gt;
    conf/Catalina&lt;br /&gt;
    conf/Catalina/localhost&lt;br /&gt;
    conf/catalina.properties&lt;br /&gt;
    conf/context.xml&lt;br /&gt;
    conf/jaspic-providers.xml&lt;br /&gt;
    conf/logging.properties&lt;br /&gt;
    conf/server.xml&lt;br /&gt;
    conf/tomcat-users.xml&lt;br /&gt;
    conf/web.xml&lt;br /&gt;
    logs&lt;br /&gt;
    policy&lt;br /&gt;
    policy/catalina.policy&lt;br /&gt;
    temp&lt;br /&gt;
    webapps&lt;br /&gt;
    work&lt;br /&gt;
&lt;br /&gt;
In der Hauptsache muss die Konfigurationsdatei &amp;quot;server.xml&amp;quot; im Verzeichnis &amp;quot;~/tomcat/conf/&amp;quot; angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine minimale &amp;quot;server.xml&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Server port=&amp;quot;38005&amp;quot; shutdown=&amp;quot;SHUTDOWN&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Listener className=&amp;quot;org.apache.catalina.startup.VersionLoggerListener&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;Listener className=&amp;quot;org.apache.catalina.core.AprLifecycleListener&amp;quot; SSLEngine=&amp;quot;on&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;Listener className=&amp;quot;org.apache.catalina.core.JreMemoryLeakPreventionListener&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;Listener className=&amp;quot;org.apache.catalina.mbeans.GlobalResourcesLifecycleListener&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;Listener className=&amp;quot;org.apache.catalina.core.ThreadLocalLeakPreventionListener&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;GlobalNamingResources&amp;gt;&lt;br /&gt;
    &amp;lt;Resource name=&amp;quot;UserDatabase&amp;quot; auth=&amp;quot;Container&amp;quot;&lt;br /&gt;
              type=&amp;quot;org.apache.catalina.UserDatabase&amp;quot;&lt;br /&gt;
              description=&amp;quot;User database that can be updated and saved&amp;quot;&lt;br /&gt;
              factory=&amp;quot;org.apache.catalina.users.MemoryUserDatabaseFactory&amp;quot;&lt;br /&gt;
              pathname=&amp;quot;conf/tomcat-users.xml&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/GlobalNamingResources&amp;gt;&lt;br /&gt;
  &amp;lt;Service name=&amp;quot;Catalina&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Connector protocol=&amp;quot;AJP/1.3&amp;quot; address=&amp;quot;127.0.0.1&amp;quot; port=&amp;quot;38006&amp;quot; redirectPort=&amp;quot;443&amp;quot; secretRequired=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Engine name=&amp;quot;Catalina&amp;quot; defaultHost=&amp;quot;localhost&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Realm className=&amp;quot;org.apache.catalina.realm.LockOutRealm&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Realm className=&amp;quot;org.apache.catalina.realm.UserDatabaseRealm&amp;quot; resourceName=&amp;quot;UserDatabase&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/Realm&amp;gt;&lt;br /&gt;
      &amp;lt;Host name=&amp;quot;localhost&amp;quot;  appBase=&amp;quot;../webapps&amp;quot; unpackWARs=&amp;quot;true&amp;quot; autoDeploy=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/Host&amp;gt;&lt;br /&gt;
    &amp;lt;/Engine&amp;gt;&lt;br /&gt;
  &amp;lt;/Service&amp;gt;&lt;br /&gt;
&amp;lt;/Server&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Angepasst werden müssen:&lt;br /&gt;
* die beiden IP-Ports (im Beispiel 38005 und 38006 am Localhost-Interface)&lt;br /&gt;
&lt;br /&gt;
Das Startskript kann durch Anpassung der Datei &#039;&#039;setenv.sh&#039;&#039; angepasst werden. Für den Monit-Prozessmonitor setze ich insbesondere die Variable &#039;&#039;CATALINA_PID&#039;&#039;. Mit &#039;&#039;JAVA_HOME&#039;&#039; sorge ich dafür, dass Java 11 zum Einsatz kommt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
HOME=/home/pacs/xyz00/users/tomcat&lt;br /&gt;
CATALINA_HOME=/usr/share/tomcat9&lt;br /&gt;
CATALINA_PID=$HOME/tomcat/work/catalina.pid&lt;br /&gt;
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64&lt;br /&gt;
PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
# Default Java options&lt;br /&gt;
if [ -z &amp;quot;$JAVA_OPTS&amp;quot; ]; then&lt;br /&gt;
	JAVA_OPTS=&amp;quot;-Djava.awt.headless=true&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deployment einer Anwendung ==&lt;br /&gt;
&lt;br /&gt;
In der Beispiel-Konfiguration wurde das Verzeichnis &#039;&#039;$HOME/webapps/&#039;&#039; für die Anwendungen konfiguriert. Wir legen dieses Verzeichnis an und kopieren eine minimale Anwendung hinein:&lt;br /&gt;
&lt;br /&gt;
    mkdir -p $HOME/webapps/hello/WEB-INF/&lt;br /&gt;
&lt;br /&gt;
Dort legen wir die Datei ~/webapps/hello/WEB-INF/web.xml mit folgendem Inhalt an:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;web-app &lt;br /&gt;
	xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
	xmlns=&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot;&lt;br /&gt;
	xmlns:web=&amp;quot;http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;quot;&lt;br /&gt;
	xsi:schemaLocation=&amp;quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;quot; &lt;br /&gt;
	id=&amp;quot;WebApp_ID&amp;quot; version=&amp;quot;3.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/web-app&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dazu eine einfache JSP-Datei ~/webapps/hello/index.jsp:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;%@ page language=&amp;quot;java&amp;quot; contentType=&amp;quot;text/html; charset=UTF-8&amp;quot; pageEncoding=&amp;quot;UTF-8&amp;quot;%&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;de-de&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Hallo Welt&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Java Version: &amp;lt;%= System.getProperty(&amp;quot;java.version&amp;quot;)  %&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun können wir die HTTP-Requests, die an eine Domain im Paket gesendet werden, an den Tomcat weiterleiten.&lt;br /&gt;
Das funktioniert über eine &#039;&#039;.htaccess&#039;&#039;-Datei, zum Beispiel im Verzeichnis &#039;&#039;~/doms/hs-example.de/htdocs-ssl&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DirectoryIndex disabled&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteBase /&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
RewriteRule ^(.*) ajp://127.0.0.1:38006/$1 [proxy,last]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Achtung der IP-Port 38006 muss hier wieder angepasst werden!&lt;br /&gt;
&lt;br /&gt;
Dadurch ist die Mini-Anwendung unter der URL &amp;quot;https://hs-example.de/hello/&amp;quot; erreichbar.&lt;br /&gt;
&lt;br /&gt;
== Start des Tomcat Servers ==&lt;br /&gt;
&lt;br /&gt;
Der Tomcat kann über die Skripte in &amp;quot;~/tomcat/bin/&amp;quot; gestartet und gestoppt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/tomcat&lt;br /&gt;
./bin/startup.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log-Ausgaben des Servers sind in &amp;quot;~/tomcat/logs/catalina.out&amp;quot; zu finden.&lt;br /&gt;
&lt;br /&gt;
Damit der Tomcat bei einem Reboot der Hostsharing-Server automatisch gestartet wird,&lt;br /&gt;
kann &amp;quot;monit&amp;quot; als einfaches Überwachungswerkzeug genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Dazu legt man eine Datei &#039;&#039;.monitrc&#039;&#039; im $HOME-Verzeichnis an. Der Inhalt ist zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set daemon 60 with start delay 120&lt;br /&gt;
set logfile /home/pacs/xyz00/users/tomcat/monit/var/monit.log&lt;br /&gt;
set idfile /home/pacs/xyz00/users/tomcat/monit/var/monit.id&lt;br /&gt;
set statefile /home/pacs/xyz00/users/tomcat/monit/var/monit.state&lt;br /&gt;
set mailserver localhost&lt;br /&gt;
set mail-format { from: monit@xyz00.hostsharing.net }&lt;br /&gt;
set alert ich@meine-domain.de&lt;br /&gt;
set httpd unixsocket /home/pacs/xyz00/users/tomcat/monit/var/monit.sock&lt;br /&gt;
    permission 600&lt;br /&gt;
    allow monit:geheim&lt;br /&gt;
check process tomcat with pidfile /home/pacs/xyz00/users/tomcat/tomcat/work/catalina.pid&lt;br /&gt;
    start program &amp;quot;/home/pacs/xyz00/users/tomcat/tomcat/bin/startup.sh&amp;quot;&lt;br /&gt;
    stop program &amp;quot;/home/pacs/xyz00/users/tomcat/tomcat/bin/shutdown.sh&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Monit lässt sich mit folgendem Kommando starten:&lt;br /&gt;
&lt;br /&gt;
    mkdir -p $HOME/monit/var&lt;br /&gt;
    monit -c $HOME/.monitrc&lt;br /&gt;
&lt;br /&gt;
Die letzte Aufgabe ist das Einrichten der Bereinigung für die Log-Dateien.&lt;br /&gt;
&lt;br /&gt;
Dazu lege ich die Konfigurationsdatei &#039;&#039;.logrotate&#039;&#039; im $HOME-Verzeichnis an:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/pacs/xyz00/users/tomcat/tomcat/logs/catalina.out {&lt;br /&gt;
   copytruncate&lt;br /&gt;
   compress&lt;br /&gt;
   rotate 5&lt;br /&gt;
   daily&lt;br /&gt;
   missingok&lt;br /&gt;
}&lt;br /&gt;
/home/pacs/xyz00/users/tomcat/monit/var/monit.log {&lt;br /&gt;
   copytruncate&lt;br /&gt;
   compress&lt;br /&gt;
   rotate 2&lt;br /&gt;
   weekly&lt;br /&gt;
   missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für den automatischen Start von Monit und für die Bereinigung der Log-Dateien noch eine &#039;&#039;crontab&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
HOME=/home/pacs/xyz00/users/tomcat&lt;br /&gt;
MAILTO=ich@meine-domain.de&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
@reboot /bin/rm -f $HOME/tomcat/work/catalina.pid &amp;amp;&amp;amp; /usr/bin/monit -c $HOME/.monitrc&lt;br /&gt;
1 1 * * * /usr/sbin/logrotate -s $HOME/.logrotate.state $HOME/.logrotate&lt;br /&gt;
14 3 * * * /usr/bin/find $HOME/tomcat/logs -type f -mmin +10080 -delete&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann gehen wir daran unsere Anwendungen im Tomcat zu deployen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
*[http://tomcat.apache.org/ Apache Tomcat Homepage (Englisch)]&lt;br /&gt;
*[http://tomcat.apache.org/tomcat-9.0-doc/index.html Apache Tomcat Dokumentation (Version 9.0, Englisch)]&lt;br /&gt;
*[http://wiki.apache.org/tomcat/FrontPage Apache Tomcat Wiki (Englisch)]&lt;br /&gt;
*[[Monit installieren]]&lt;br /&gt;
*[https://github.com/tpokorra/Hostsharing-Ansible-Tomcat Ansible Playbook für Hostsharing]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Ansible Playbook]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Eigene Daemons]]&lt;/div&gt;</summary>
		<author><name>Ph</name></author>
	</entry>
</feed>