Tomcat installation per tarball (Linux): Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
 
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{note|Noch in Bearbeitung}}
== Voraussetzungen ==
== Voraussetzungen ==


Zeile 49: Zeile 46:
=== Umgebungsvariablen setzen ===
=== Umgebungsvariablen setzen ===


Dazu eine Datei ''etc/tomcat7.conf'' erstellen:
* CATALINA_HOME = Verzeichnis, wo die Binärdateien liegen
* CATALINA_BASE = Verzeichnis, wo die Instanz-spezifischen Dateien (z.B. Konfigurationsdateien) liegen (bei einer Instanz können beide Variablen gleich sein)
 
Dazu eine Datei ''/etc/tomcat7.conf'' erstellen:
<pre>
<pre>
sudo nano etc/tomcat7.conf
sudo vi /etc/tomcat7.conf
</pre>
</pre>


Zeile 111: Zeile 111:


<pre>
<pre>
sudo nano /opt/tomcat/tomcat9_0_0/conf/Catalina/localhost/manager.xml
sudo vi /opt/tomcat/tomcat9_0_0/conf/Catalina/localhost/manager.xml
</pre>
</pre>


Zeile 135: Zeile 135:
sudo update-rc.d tomcat7 defaults 80 10
sudo update-rc.d tomcat7 defaults 80 10
</pre>
</pre>
=== Realm (Security Authentication) ===
[https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JDBCRealm https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JDBCRealm]
[http://www.avajava.com/tutorials/lessons/how-do-i-use-a-jdbc-realm-with-tomcat-and-mysql.html?page=1 http://www.avajava.com/tutorials/lessons/how-do-i-use-a-jdbc-realm-with-tomcat-and-mysql.html?page=1]


== Mehrere Tomcat-Instanzen parallel ==
== Mehrere Tomcat-Instanzen parallel ==


Für jede weitere Instanz ein weiteres Verzeichnis (''CATALINA_BASE'') anlegen. Die Unterverzeichnise ''conf'' und ''webapps'' werden kopiert. Anstelle des Unterverzeichnisses ''bin'' wird ein symbolischer Link zu ''CATALINA_HOME/bin'' gesetzt.
<pre>
<pre>
cd /opt/tomcat/tomcat7_0_69/
cd /opt/tomcat/tomcat7_0_69/
Zeile 152: Zeile 159:
sudo chmod -R 755 /opt/tomcat/tomcat7_0_69/tomcat7_1/
sudo chmod -R 755 /opt/tomcat/tomcat7_0_69/tomcat7_1/
sudo -u tomcat cp /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina.sh /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina7_1.sh
sudo -u tomcat cp /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina.sh /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina7_1.sh
sudo cp /etc/tomcat7.conf /etc/tomcat7_1.conf
</pre>
</pre>


 
Dieser Vorgang wird für jede weitere Instanz wiederholt:
<pre>
<pre>
cd /opt/tomcat/tomcat7_0_69/
cd /opt/tomcat/tomcat7_0_69/
sudo mkdir tomcat7_2
sudo mkdir tomcat7_<instance>
sudo cp -r tomcat7/conf/ tomcat7_2/conf/
sudo cp -r tomcat7/conf/ tomcat7_<instance>/conf/
sudo cp -r tomcat7/webapps/ tomcat7_2/webapps/
sudo cp -r tomcat7/webapps/ tomcat7_<instance>/webapps/
sudo mkdir tomcat7_2/logs/
sudo mkdir tomcat7_<instance>/logs/
sudo mkdir tomcat7_2/temp/
sudo mkdir tomcat7_<instance>/temp/
sudo mkdir tomcat7_2/work/
sudo mkdir tomcat7_<instance>/work/
cd tomcat7_2
cd tomcat7_<instance>
sudo ln -s ../tomcat7/bin bin
sudo ln -s ../tomcat7/bin bin
sudo ln -s ../tomcat7/lib lib
sudo ln -s ../tomcat7/lib lib
sudo chown -R tomcat:tomcat /opt/tomcat/tomcat7_0_69/tomcat7_2/
sudo chown -R tomcat:tomcat /opt/tomcat/tomcat7_0_69/tomcat7_<instance>/
sudo chmod -R 755 /opt/tomcat/tomcat7_0_69/tomcat7_2/
sudo chmod -R 755 /opt/tomcat/tomcat7_0_69/tomcat7_<instance>/
sudo -u tomcat cp /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina.sh /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina7_2.sh
sudo -u tomcat cp /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina.sh /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina7_<instance>.sh
</pre>
sudo cp /etc/tomcat7.conf /etc/tomcat7_<instance>.conf
 
=== ''/etc/init.d/tomacat7_X'' ===
 
Da jede Instanz eine eigene PID-Datei verwendet, muss auch diese Variable angepaßt werden:
<pre>
CATALINA_PID="$CATALINA_BASE/bin/catalina7_<instance>.pid"
</pre>
</pre>


=== ''$CATALINA_BASE/bin/catalina7_X.sh'' ===
=== ''$CATALINA_BASE/bin/catalina7_X.sh'' ===


Danach in ''/opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina7_1.sh'' bzw. ''/opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina7_2.sh'' den Namen der Tomcat-Konfigurationsdatei anpassen:
Danach in ''/opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina7_<instance>.sh'' den Namen der Tomcat-Konfigurationsdatei anpassen:
<pre>
<pre>
...
...
# Get the tomcat config (use this for environment specific settings)
# Get the tomcat config (use this for environment specific settings)
if [ -z "${TOMCAT_CFG}" ]; then
if [ -z "${TOMCAT_CFG}" ]; then
         TOMCAT_CFG="/etc/tomcat7_1.conf"
         TOMCAT_CFG="/etc/tomcat7_<instance>.conf"
fi
fi
...
...
Zeile 219: Zeile 221:


Ein Möglichkeit ist, die führende '''8''' bei allen Ports jeweils erhöhen oder erniedrigen. Aus ''8005'' wird dann z.B. ''9005''.
Ein Möglichkeit ist, die führende '''8''' bei allen Ports jeweils erhöhen oder erniedrigen. Aus ''8005'' wird dann z.B. ''9005''.
=== /etc/tomcat7_<instance> ===
In den Konfigurations-Dateien ''tomcat7'' durch ''tomcat7_<instance>'' (ausgenommen ''CATALINA_HOME'') ersetzen
<pre>
# Where your java installation lives
JAVA_HOME="/opt/Oracle_Java/jdk1.8.0_92"
# Where your tomcat installation lives
CATALINA_BASE="/opt/tomcat/tomcat7_0_69/tomcat7_<instance>"
CATALINA_HOME="/opt/tomcat/tomcat7_0_69/tomcat7"
JASPER_HOME="/opt/tomcat/tomcat7_0_69/tomcat7_<instance>"
CATALINA_TMPDIR="/opt/tomcat/tomcat7_0_69/tomcat7_<instance>/temp"
# Set the TOMCAT_PID location
CATALINA_PID="$CATALINA_HOME/bin/catalina7_<instance>.pid"
# What user should run tomcat
TOMCAT_USER="tomcat"
</pre>


=== Als Service mit SysVinit ===
=== Als Service mit SysVinit ===
Zeile 238: Zeile 260:
<pre>
<pre>
.../tomcat7_0_69/tomcat7_<instance>"
.../tomcat7_0_69/tomcat7_<instance>"
</pre>
Da jede Instanz eine eigene PID-Datei verwendet, muss auch diese Variable angepaßt werden:
<pre>
CATALINA_PID="$CATALINA_BASE/bin/catalina7_<instance>.pid"
</pre>
</pre>


Zeile 249: Zeile 276:


[[Load Balancer mit mod_jk (Linux)]]
[[Load Balancer mit mod_jk (Linux)]]
== Eclipse ==
[[Tomcat und Eclipse (Linux)|Tomcat und Eclipse]]


== Links ==
== Links ==
Zeile 263: Zeile 294:




Zurück zu [[Ubuntu]]
Zurück zu [[Tomcat installation per tarball (unterschiedliche Versionen)#Ubuntu Versionen|Tomcat (tarball)]]

Aktuelle Version vom 6. Januar 2021, 17:47 Uhr

Voraussetzungen

Java siehe Java (Ubuntu)

Benutzer anlegen

sudo addgroup --system --no-create-home --disabled-login --group tomcat
sudo adduser --system --no-create-home --disabled-login --ingroup tomcat tomcat

Alternativ mit fixer UID:

sudo addgroup --system --no-create-home --disabled-login --uid 128 --group tomcat
sudo adduser --system --no-create-home --disabled-login --uid 128 --ingroup tomcat tomcat 

Download

Verfügbare Versionen siehe http://www.eu.apache.org/dist/tomcat/

wget http://www.eu.apache.org/dist/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz
tar -xzf apache-tomcat-7.0.69.tar.gz

Installationsverzeichnis anlegen:

sudo mkdir -p /opt/tomcat/tomcat7_0_69/

Entpacktes Tomcat-Verzeichnis verschieben und Besitzer setzen:

sudo mv apache-tomcat-7.0.69 /opt/tomcat/tomcat7_0_69/tomcat7
sudo chown -R tomcat:tomcat /opt/tomcat/tomcat7_0_69/tomcat7

Installation

Einen symbolischen Link auf das Verzeichnis mit der Version für Tomcat 7 anlegen (falls mehrere Versionen installiert sind):

cd /opt/tomcat/
sudo ln -s /opt/tomcat/tomcat7_0_69 tomcat7

Umgebungsvariablen setzen

  • CATALINA_HOME = Verzeichnis, wo die Binärdateien liegen
  • CATALINA_BASE = Verzeichnis, wo die Instanz-spezifischen Dateien (z.B. Konfigurationsdateien) liegen (bei einer Instanz können beide Variablen gleich sein)

Dazu eine Datei /etc/tomcat7.conf erstellen:

sudo vi /etc/tomcat7.conf

Diese Datei mit folgenden Inhalt befüllen:

# Where your java installation lives
JAVA_HOME="/opt/Oracle_Java/jdk1.8.0_92"

# Where your tomcat installation lives
CATALINA_BASE="/opt/tomcat/tomcat7_0_69/tomcat7"
CATALINA_HOME="/opt/tomcat/tomcat7_0_69/tomcat7"
JASPER_HOME="/opt/tomcat/tomcat7_0_69/tomcat7"
CATALINA_TMPDIR="/opt/tomcat/tomcat7_0_69/tomcat7/temp"

# Set the TOMCAT_PID location
CATALINA_PID="$CATALINA_HOME/bin/catalina.pid"

# What user should run tomcat
TOMCAT_USER="tomcat"

In der Datei /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina.sh die Variablenkonfiguration einfügen:

...
# Ensure that any user defined CLASSPATH variables are not used on startup,
# but allow them to be specified in setenv.sh, in rare case when it is needed.
CLASSPATH=

# Get the tomcat config (use this for environment specific settings)
if [ -z "${TOMCAT_CFG}" ]; then
        TOMCAT_CFG="/etc/tomcat7.conf"
fi

if [ -r "$TOMCAT_CFG" ]; then
        . $TOMCAT_CFG
fi

if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then
  . "$CATALINA_BASE/bin/setenv.sh"
...

Konfiguration

Tomcat Benutzer anlegen

Dazu in der Datei $CATALINA_HOME/conf/tomcat-users.xml folgende Zeilen zwischen <tomcat-users> und </tomcat-users> einfügen:

<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="tomcat"/>
<user username="tomcat" password="tomcat" roles="tomcat,manager-gui,admin-gui"/>

Zusätzlich bei Tomcat 9

Manager für alle Addressen erlauben

sudo vi /opt/tomcat/tomcat9_0_0/conf/Catalina/localhost/manager.xml
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

Als Service mit SysVinit

Eine Konfigurationsdatei /etc/init.d/tomcat7 anlegen:

sudo nano /etc/init.d/tomcat7

Die Datei /etc/init.d/tomcat7 mit folgenden Inhalt befüllen (die Basis für dieses Skript stammt von https://gist.github.com/miglen/5590986):

Datei:Tomcat7.sh

Service beim Systemstart automatisch starten:

sudo update-rc.d tomcat7 defaults 80 10

Realm (Security Authentication)

https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JDBCRealm

http://www.avajava.com/tutorials/lessons/how-do-i-use-a-jdbc-realm-with-tomcat-and-mysql.html?page=1

Mehrere Tomcat-Instanzen parallel

Für jede weitere Instanz ein weiteres Verzeichnis (CATALINA_BASE) anlegen. Die Unterverzeichnise conf und webapps werden kopiert. Anstelle des Unterverzeichnisses bin wird ein symbolischer Link zu CATALINA_HOME/bin gesetzt.

cd /opt/tomcat/tomcat7_0_69/
sudo mkdir tomcat7_1
sudo cp -r tomcat7/conf/ tomcat7_1/conf/
sudo cp -r tomcat7/webapps/ tomcat7_1/webapps/
sudo mkdir tomcat7_1/logs/
sudo mkdir tomcat7_1/temp/
sudo mkdir tomcat7_1/work/
cd tomcat7_1
sudo ln -s ../tomcat7/bin bin
sudo ln -s ../tomcat7/lib lib
sudo chown -R tomcat:tomcat /opt/tomcat/tomcat7_0_69/tomcat7_1/
sudo chmod -R 755 /opt/tomcat/tomcat7_0_69/tomcat7_1/
sudo -u tomcat cp /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina.sh /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina7_1.sh
sudo cp /etc/tomcat7.conf /etc/tomcat7_1.conf

Dieser Vorgang wird für jede weitere Instanz wiederholt:

cd /opt/tomcat/tomcat7_0_69/
sudo mkdir tomcat7_<instance>
sudo cp -r tomcat7/conf/ tomcat7_<instance>/conf/
sudo cp -r tomcat7/webapps/ tomcat7_<instance>/webapps/
sudo mkdir tomcat7_<instance>/logs/
sudo mkdir tomcat7_<instance>/temp/
sudo mkdir tomcat7_<instance>/work/
cd tomcat7_<instance>
sudo ln -s ../tomcat7/bin bin
sudo ln -s ../tomcat7/lib lib
sudo chown -R tomcat:tomcat /opt/tomcat/tomcat7_0_69/tomcat7_<instance>/
sudo chmod -R 755 /opt/tomcat/tomcat7_0_69/tomcat7_<instance>/
sudo -u tomcat cp /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina.sh /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina7_<instance>.sh
sudo cp /etc/tomcat7.conf /etc/tomcat7_<instance>.conf

$CATALINA_BASE/bin/catalina7_X.sh

Danach in /opt/tomcat/tomcat7_0_69/tomcat7/bin/catalina7_<instance>.sh den Namen der Tomcat-Konfigurationsdatei anpassen:

...
# Get the tomcat config (use this for environment specific settings)
if [ -z "${TOMCAT_CFG}" ]; then
        TOMCAT_CFG="/etc/tomcat7_<instance>.conf"
fi
...

$CATALINA_BASE/conf/server.xml

Alle Instanzen müssen unterschiedliche Ports verwenden. Die verwendeten Ports werden in der Datei $CATALINA_BASE/conf/server.xml geändert:

cd /opt/tomcat/tomcat7_0_69/tomcat7_1/conf/
sudo nano server.xml

Die Standard-Ports sind in der folgenden Tabelle aufgelistet:

Port Beschreibung
8005 Shutdown Port
8080 Connector Port
8443 Redirect Port
8009 AJP Connector Port

Ein Möglichkeit ist, die führende 8 bei allen Ports jeweils erhöhen oder erniedrigen. Aus 8005 wird dann z.B. 9005.

/etc/tomcat7_<instance>

In den Konfigurations-Dateien tomcat7 durch tomcat7_<instance> (ausgenommen CATALINA_HOME) ersetzen

# Where your java installation lives
JAVA_HOME="/opt/Oracle_Java/jdk1.8.0_92"

# Where your tomcat installation lives
CATALINA_BASE="/opt/tomcat/tomcat7_0_69/tomcat7_<instance>"
CATALINA_HOME="/opt/tomcat/tomcat7_0_69/tomcat7"
JASPER_HOME="/opt/tomcat/tomcat7_0_69/tomcat7_<instance>"
CATALINA_TMPDIR="/opt/tomcat/tomcat7_0_69/tomcat7_<instance>/temp"

# Set the TOMCAT_PID location
CATALINA_PID="$CATALINA_HOME/bin/catalina7_<instance>.pid"

# What user should run tomcat
TOMCAT_USER="tomcat"

Als Service mit SysVinit

Zuerst die Service-Konfigurationsdateien für alle weiteren Instanzen kopieren:

sudo cp /etc/init.d/tomcat7 /etc/init.d/tomcat7_1
sudo cp /etc/init.d/tomcat7 /etc/init.d/tomcat7_2

Danach in den eben kopierten Dateien

.../tomcat7_0_69/tomcat7"

durch die jeweilige Instanz (z.B. tomcat7_1) ersetzen:

.../tomcat7_0_69/tomcat7_<instance>"

Da jede Instanz eine eigene PID-Datei verwendet, muss auch diese Variable angepaßt werden:

CATALINA_PID="$CATALINA_BASE/bin/catalina7_<instance>.pid"

Zum Abschluß das Script zu den Run-Levels hinzufügen:

sudo update-rc.d tomcat7_1 defaults 80 10
sudo update-rc.d tomcat7_2 defaults 80 10

Load Balancer

Load Balancer mit mod_jk (Linux)

Eclipse

Tomcat und Eclipse

Links

http://perfect-knowhow.de/autostart-von-tomcat-6-beim-booten-eines-ubuntu-systems

https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-14-04

http://www.patrick-gotthard.de/manuelle-tomcat-installation-unter-linux

http://www.laub-home.de/wiki/Mehrere_Tomcat_Instanzen_auf_einem_Server

https://www.tech-island.com/tutorials/mehrere-tomcat-instanzen-auf-demselben-server


Zurück zu Tomcat (tarball)