Tomcat installation per tarball (Linux): Unterschied zwischen den Versionen
(→Links) |
|||
(31 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== 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 | sudo vi /etc/tomcat7.conf | ||
</pre> | </pre> | ||
Zeile 111: | Zeile 111: | ||
<pre> | <pre> | ||
sudo | 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 == | |||
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 169: | 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 | sudo mkdir tomcat7_<instance> | ||
sudo cp -r tomcat7/conf/ | sudo cp -r tomcat7/conf/ tomcat7_<instance>/conf/ | ||
sudo cp -r tomcat7/webapps/ | sudo cp -r tomcat7/webapps/ tomcat7_<instance>/webapps/ | ||
sudo mkdir | sudo mkdir tomcat7_<instance>/logs/ | ||
sudo mkdir | sudo mkdir tomcat7_<instance>/temp/ | ||
sudo mkdir | sudo mkdir tomcat7_<instance>/work/ | ||
cd | 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/ | sudo chown -R tomcat:tomcat /opt/tomcat/tomcat7_0_69/tomcat7_<instance>/ | ||
sudo chmod -R 755 /opt/tomcat/tomcat7_0_69/ | 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/ | 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 | |||
</pre> | </pre> | ||
=== ''$CATALINA_BASE/bin/catalina7_X.sh'' === | |||
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/ | TOMCAT_CFG="/etc/tomcat7_<instance>.conf" | ||
fi | fi | ||
... | ... | ||
</pre> | </pre> | ||
=== ''conf/server.xml'' === | === ''$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: | |||
<pre> | <pre> | ||
cd /opt/tomcat/tomcat7_0_69/tomcat7_1/conf/ | cd /opt/tomcat/tomcat7_0_69/tomcat7_1/conf/ | ||
sudo nano server.xml | |||
</pre> | </pre> | ||
Die Standard-Ports sind in der folgenden Tabelle aufgelistet: | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Zeile 221: | Zeile 219: | ||
| AJP Connector Port | | 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 | |||
<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 === | |||
Zuerst die Service-Konfigurationsdateien für alle weiteren Instanzen kopieren: | |||
<pre> | |||
sudo cp /etc/init.d/tomcat7 /etc/init.d/tomcat7_1 | |||
sudo cp /etc/init.d/tomcat7 /etc/init.d/tomcat7_2 | |||
</pre> | |||
Danach in den eben kopierten Dateien | |||
<pre> | |||
.../tomcat7_0_69/tomcat7" | |||
</pre> | |||
durch die jeweilige Instanz (z.B. ''tomcat7_1'') ersetzen: | |||
<pre> | |||
.../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> | |||
Zum Abschluß das Script zu den Run-Levels hinzufügen: | |||
<pre> | |||
sudo update-rc.d tomcat7_1 defaults 80 10 | |||
sudo update-rc.d tomcat7_2 defaults 80 10 | |||
</pre> | |||
== Load Balancer == | == Load Balancer == | ||
[[Load Balancer mit mod_jk (Linux)]] | [[Load Balancer mit mod_jk (Linux)]] | ||
== Eclipse == | |||
[[Tomcat und Eclipse (Linux)|Tomcat und Eclipse]] | |||
== Links == | == Links == | ||
Zeile 239: | 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):
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
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)