Tomcat Installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
K (→‎Start des Tomcat Servers: Pfad aktualisiert bzw. ergänzt)
 
(35 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
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)].
Mit Hilfe von Apache Tomcat ist bei Hostsharing das Hosting von komplexen Java Web-Applikationen problemlos möglich.


== Spezielle Installation bei Hostsharing ==
== Spezielle Installation bei Hostsharing ==
Zeile 11: Zeile 11:
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.


Dazu muss die die kostenpflichtige Option [https://www.hostsharing.net/produkte/web-pakete "Betrieb eines eigenen Serverdienstes"] gebucht 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) am Localhost-Interface gebunden.
 
Geben Sie bei der Bestellung der Option "Eigener Serverdienst" an:


Diese Anleitung dokumentiert die Installation des Apache Tomcat Servers als Paket-Admin in einem WEB-Paket bei Hostsharing. (Nicht SW-Paket)
# den Service User, mit dessen Rechten der Tomcat-Dienst laufen soll (also zum Beispiel "xyz00-tomcat")
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.
# wieviele IP-Ports reserviert werden sollen (in der folgenden Anleitung verwenden wir drei nicht-privilegierte Ports:
* 38005 als "Shutdown"-Schnittstelle
* 38006 für eine AJP-Listener


== Installation ==  
== 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.
Vorbemerkung: Mit Debian 12 ('Bookworm') wird Tomcat 10 von der Distribution mitgeliefert. Die folgende Anleitung gilt sinngemäß, ersetze jeweils 'tomcat9' durch 'tomat10' in den Namen der Skripte und Verzeichnisse.
 
Auf den Hostsharing-Servern ist das Debian-Paket "tomcat9-user" installiert. Es stellt den
Apache Tomcat Server in der Version 9.0.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.


Zur Zeit ist die Version 7.0.41 aktuell (Juni 2013).
Für die Installation der Konfigurations-Dateien in Heimat-Verzeichnis des Benutzers wird folgender Befehl
mit den Rechten des Service-Users aufgerufen:


Die Software wird heruntergeladen und entpackt. Das Installationsverzeichnis wird in "tomcat7" umbenannt:
    xyz00-tomcat@h00:~$ tomcat9-instance-create tomcat


<pre>
Ich bevorzuge das catalina.sh-Startskript zum Testen:
cd /home/pacs/xyz00
 
wget http://apache.mirror.iphh.net/tomcat/tomcat-7/v7.0.41/bin/apache-tomcat-7.0.41.tar.gz
    xyz00-tomcat@h00:~$ cp /usr/share/tomcat9/bin/catalina.sh tomcat/bin/
tar xzf apache-tomcat-7.0.41.tar.gz
 
mv apache-tomcat-7.0.41 tomcat7
Dieser Befehl legt ein Verzeichnis "tomcat" mit der üblichen Dateistruktur für einen Tomcat-Server an:
rm apache-tomcat-7.0.41.tar.gz
 
</pre>
    bin
    bin/catalina.sh
    bin/setenv.sh
    bin/shutdown.sh
    bin/startup.sh
    conf
    conf/Catalina
    conf/Catalina/localhost
    conf/catalina.properties
    conf/context.xml
    conf/jaspic-providers.xml
    conf/logging.properties
    conf/server.xml
    conf/tomcat-users.xml
    conf/web.xml
    logs
    policy
    policy/catalina.policy
    temp
    webapps
    work


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


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


<pre>
<pre>
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="UTF-8"?>
<Server port="-1" shutdown="SHUTDOWN">
<Server port="38005" shutdown="SHUTDOWN">
 
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
   <Listener className="org.apache.catalina.core.JasperListener" />
   <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" />
   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
   <GlobalNamingResources>
   <GlobalNamingResources>
     <Resource name="UserDatabase" auth="Container"
     <Resource name="UserDatabase" auth="Container"
               type="org.apache.catalina.UserDatabase"
               type="org.apache.catalina.UserDatabase"
Zeile 52: Zeile 81:
               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 protocol="AJP/1.3" address="127.0.0.1" port="38006" redirectPort="443" secretRequired="false" />
     <Connector  
     <Engine name="Catalina" defaultHost="localhost">
          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.LockOutRealm">
         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
         <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
              resourceName="UserDatabase"/>
       </Realm>
       </Realm>
 
       <Host name="localhost" appBase="../webapps" unpackWARs="true" autoDeploy="true"></Host>
       <Host name="xyz00.hostsharing.net"  
              appBase="../webapps/default"  
              unpackWARs="true" autoDeploy="true">
      </Host>
 
     </Engine>
     </Engine>
   </Service>
   </Service>
Zeile 79: Zeile 95:


Angepasst werden müssen:
Angepasst werden müssen:
* der Paketname (im Beispiel xyz00) und
* die beiden IP-Ports (im Beispiel 38005 und 38006 am Localhost-Interface)
* der IP-Port (im Beispiel 31313)


== Deployment einer Anwendung ==
== Deployment einer Anwendung ==


In der Beispiel-Konfiguration wurde das Verzeichnis "~/webapps/default" für die Anwendungen konfiguriert.
In der Beispiel-Konfiguration wurde das Verzeichnis ''$HOME/webapps/'' für die Anwendungen konfiguriert. Wir legen dieses Verzeichnis an und kopieren eine minimale Anwendung hinein:
Wir legen dieses Verzeichnis an und kopieren eine Beispielanwendung hinein:
 
    mkdir -p $HOME/webapps/hello/WEB-INF/
 
Dort legen wir die Datei ~/webapps/hello/WEB-INF/web.xml mit folgendem Inhalt an:


<pre>
<pre>
cd /home/pacs/xyz00
<?xml version="1.0" encoding="UTF-8"?>
mkdir webapps
<web-app
mkdir webapps/default
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
cp -a tomcat7/webapps/examples webapps/default/
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>
</pre>
 
Dazu eine einfache JSP-Datei ~/webapps/hello/index.jsp:
 
<pre>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="de-de">
<body>
<h1>Hallo Welt</h1>
<p>Java Version: <%= System.getProperty("java.version")  %></p>
</body>
</html>
</pre>
</pre>


Nun können wir die HTTP-Requests, die an eine Domain im Paket gesendet werden, an den Tomcat weiterleiten.
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":
Das funktioniert über eine ''.htaccess''-Datei, zum Beispiel im Verzeichnis ''~/doms/hs-example.de/htdocs-ssl'':


<pre>
<pre>
DirectoryIndex disabled
RewriteEngine On
RewriteEngine On
RewriteBase /
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*) ajp://xyz00.hostsharing.net:31313/$1 [proxy,last]
RewriteRule ^(.*) ajp://127.0.0.1:38006/$1 [proxy,last]
</pre>
</pre>


Paketname und Port müssen wieder angepasst werden!
Achtung der IP-Port 38006 muss hier wieder angepasst werden!


Dann können wir unsere Tomcat-Examples unter der URL "http://examples.org/examples/" erreichen.
Dadurch ist die Mini-Anwendung unter der URL "https://hs-example.de/hello/" erreichbar.


== Start des Tomcat Servers ==
== Start des Tomcat Servers ==


Der Tomcat kann über die Skripte in "~/tomcat7/bin/" gestartet und gestoppt werden.
Der Tomcat kann über die Skripte in "~/tomcat/bin/" gestartet und gestoppt werden.
 
<pre>
cd ~/tomcat
./bin/startup.sh
</pre>
 
Log-Ausgaben des Servers sind in "~/tomcat/logs/catalina.out" zu finden.
 
Damit der Tomcat bei einem Reboot der Hostsharing-Server automatisch gestartet wird,
konfigurieren wir den Prozessmonitor ''systemd'' entsprechend.
 
Wir legen ein Verzeichnis für die Konfiguration des ''systemd'' an und legen eine Unit-Konfiguration für einen Service dort ab:
 
mkdir -p ~/.config/systemd/user
 
Die Unit-Datei ''~/.config/systemd/user/tomcat.service''
 
[Unit]
Description=Tomcat User Service
[Service]
WorkingDirectory=%h/tomcat
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Xms256M -Xmx512M"
ExecStart=%h/tomcat/bin/catalina.sh run
StandardOutput=file:%h/tomcat/logs/catalina.log
StandardError=inherit
Restart=always
PrivateTmp=true
NoNewPrivileges=true
[Install]
WantedBy=default.target
 
 
Die letzte Aufgabe ist das Einrichten der Bereinigung für die Log-Dateien.
 
Dazu lege ich die Konfigurationsdatei ''.logrotate'' im $HOME-Verzeichnis an:


<pre>
<pre>
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
/home/pacs/xyz00/users/tomcat/tomcat/logs/catalina.log {
cd /home/pacs/xyz00/tomcat7
  copytruncate
./bin/catalina.sh start
  compress
  rotate 5
  daily
  missingok
}
</pre>
</pre>


'''Anmerkung:''' Die Export-Zeile lautet bei shared hosting aktuell '''export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386/'''
Für die Bereinigung der Log-Dateien noch eine ''crontab'':


Log-Ausgaben des Servers sind in "~/tomcat7/logs/catalina.out" zu finden.
<pre>
PATH=/usr/local/bin:/usr/bin:/bin
HOME=/home/pacs/xyz00/users/tomcat
MAILTO=ich@meine-domain.de
# m h  dom mon dow  command
1 1 * * * /usr/sbin/logrotate -s $HOME/.logrotate.state $HOME/.logrotate
14 3 * * * /usr/bin/find $HOME/tomcat/logs -type f -mmin +10080 -delete
</pre>


Damit der Tomcat bei einem Reboot der Hostsharing-Server automatisch gestartet wird,
Dann gehen wir daran unsere Anwendungen im Tomcat zu deployen.
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 ==
== Links ==


*[http://tomcat.apache.org/ Apache Tomcat Homepage (Englisch)]
*[http://tomcat.apache.org/ Apache Tomcat Homepage (Englisch)]
*[http://tomcat.apache.org/tomcat-7.0-doc/index.html Apache Tomcat Dokumentation (Version 5.*, Englisch)]
*[http://tomcat.apache.org/tomcat-9.0-doc/index.html Apache Tomcat Dokumentation (Version 9.0, Englisch)]
*[http://wiki.apache.org/tomcat/FrontPage Apache Tomcat Wiki (Englisch)]
*[http://wiki.apache.org/tomcat/FrontPage Apache Tomcat Wiki (Englisch)]
*[[Monit installieren]]
*[https://github.com/tpokorra/Hostsharing-Ansible-Tomcat Ansible Playbook für Hostsharing]


----
----
[[Kategorie:HSDoku]]
[[Kategorie:HSDoku]]
[[Kategorie:Installationsanleitungen]]
[[Kategorie:Installationsanleitungen]]
[[Kategorie:Ansible Playbook]]
[[Kategorie:Software]]
[[Kategorie:Software]]
[[Kategorie:Java]]
[[Kategorie:Eigene Daemons]]
[[Kategorie:Eigene Daemons]]

Aktuelle Version vom 6. November 2023, 19:03 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).

Mit Hilfe von Apache Tomcat ist bei Hostsharing das Hosting von komplexen Java Web-Applikationen problemlos möglich.

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) am Localhost-Interface gebunden.

Geben Sie bei der Bestellung der Option "Eigener Serverdienst" an:

  1. den Service User, mit dessen Rechten der Tomcat-Dienst laufen soll (also zum Beispiel "xyz00-tomcat")
  2. wieviele IP-Ports reserviert werden sollen (in der folgenden Anleitung verwenden wir drei nicht-privilegierte Ports:
  • 38005 als "Shutdown"-Schnittstelle
  • 38006 für eine AJP-Listener

Installation

Vorbemerkung: Mit Debian 12 ('Bookworm') wird Tomcat 10 von der Distribution mitgeliefert. Die folgende Anleitung gilt sinngemäß, ersetze jeweils 'tomcat9' durch 'tomat10' in den Namen der Skripte und Verzeichnisse.

Auf den Hostsharing-Servern ist das Debian-Paket "tomcat9-user" installiert. Es stellt den Apache Tomcat Server in der Version 9.0.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:~$ tomcat9-instance-create tomcat

Ich bevorzuge das catalina.sh-Startskript zum Testen:

   xyz00-tomcat@h00:~$ cp /usr/share/tomcat9/bin/catalina.sh tomcat/bin/

Dieser Befehl legt ein Verzeichnis "tomcat" mit der üblichen Dateistruktur für einen Tomcat-Server an:

   bin
   bin/catalina.sh
   bin/setenv.sh
   bin/shutdown.sh
   bin/startup.sh
   conf
   conf/Catalina
   conf/Catalina/localhost
   conf/catalina.properties
   conf/context.xml
   conf/jaspic-providers.xml
   conf/logging.properties
   conf/server.xml
   conf/tomcat-users.xml
   conf/web.xml
   logs
   policy
   policy/catalina.policy
   temp
   webapps
   work

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="38005" 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 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="127.0.0.1" port="38006" redirectPort="443" secretRequired="false" />
    <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 müssen:

  • die beiden IP-Ports (im Beispiel 38005 und 38006 am Localhost-Interface)

Deployment einer Anwendung

In der Beispiel-Konfiguration wurde das Verzeichnis $HOME/webapps/ für die Anwendungen konfiguriert. Wir legen dieses Verzeichnis an und kopieren eine minimale Anwendung hinein:

   mkdir -p $HOME/webapps/hello/WEB-INF/

Dort legen wir die Datei ~/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 ~/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>
<p>Java Version: <%= System.getProperty("java.version")  %></p>
</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/hs-example.de/htdocs-ssl:

DirectoryIndex disabled
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*) ajp://127.0.0.1:38006/$1 [proxy,last]

Achtung der IP-Port 38006 muss hier wieder angepasst werden!

Dadurch ist die Mini-Anwendung unter der URL "https://hs-example.de/hello/" erreichbar.

Start des Tomcat Servers

Der Tomcat kann über die Skripte in "~/tomcat/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, konfigurieren wir den Prozessmonitor systemd entsprechend.

Wir legen ein Verzeichnis für die Konfiguration des systemd an und legen eine Unit-Konfiguration für einen Service dort ab:

mkdir -p ~/.config/systemd/user

Die Unit-Datei ~/.config/systemd/user/tomcat.service

[Unit]
Description=Tomcat User Service

[Service]
WorkingDirectory=%h/tomcat
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Xms256M -Xmx512M"
ExecStart=%h/tomcat/bin/catalina.sh run
StandardOutput=file:%h/tomcat/logs/catalina.log
StandardError=inherit
Restart=always
PrivateTmp=true
NoNewPrivileges=true

[Install]
WantedBy=default.target


Die letzte Aufgabe ist das Einrichten der Bereinigung für die Log-Dateien.

Dazu lege ich die Konfigurationsdatei .logrotate im $HOME-Verzeichnis an:

/home/pacs/xyz00/users/tomcat/tomcat/logs/catalina.log {
   copytruncate
   compress
   rotate 5
   daily
   missingok
}

Für die Bereinigung der Log-Dateien noch eine crontab:

PATH=/usr/local/bin:/usr/bin:/bin
HOME=/home/pacs/xyz00/users/tomcat
MAILTO=ich@meine-domain.de
# m h  dom mon dow   command
1 1 * * * /usr/sbin/logrotate -s $HOME/.logrotate.state $HOME/.logrotate
14 3 * * * /usr/bin/find $HOME/tomcat/logs -type f -mmin +10080 -delete

Dann gehen wir daran unsere Anwendungen im Tomcat zu deployen.

Links