Tomcat installation per tarball (Linux)

Aus Tutorials
Zur Navigation springen Zur Suche springen

Noch in Bearbeitung


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

Dazu eine Datei etc/tomcat7.conf erstellen:

sudo nano 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 nano /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

Mehrere Tomcat-Instanzen parallel

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


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

/etc/init.d/tomacat7_X

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

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:

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

$CATALINA_HOME/conf/server.xml

Alle Instanzen müssen unterschiedliche Ports verwenden. Die verwendeten Ports werden in der Datei $CATALINA_HOME/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.

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_1"
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)

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 Ubuntu