Apache Tomcat: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Sand-cat (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


==Installation==
==Installation==
Die Version 7 des '''Apache Tomcat''' befindet im [[AUR]]:
Die Version 7 des '''Apache Tomcat''' befindet im Extra-Repository:
  $ yaourt -S tomcat7
  # pacman -S tomcat7
Leider ist das dortige Startscript '''/etc/rc.d/tomcat7''' fehlerhaft und sollte wiefolgt ergänzt werden:
 
==Verwendung mit OpenJDK==
Bei Verwendung des OpenJDK kommt es beim Starten des Tomcat-Daemon zu folgendem Fehler:
:: Starting tomcat7 daemon      [BUSY]
Cannot locate Java Home
                                [FAIL]
Daher sollte das Startscript '''/etc/rc.d/tomcat7''' wiefolgt angepasst werden:
  #!/bin/bash
  #!/bin/bash
  '''source /etc/profile.d/openjdk6.sh'''
  '''source /etc/profile.d/openjdk6.sh'''
  [ -f /etc/conf.d/tomcat7 ] && . /etc/conf.d/tomcat7
  daemon_name=tomcat7
  . /etc/rc.conf
  . /etc/rc.conf
  . /etc/rc.d/functions
  . /etc/rc.d/functions
  JSVC_BIN=/usr/share/tomcat7/bin/jsvc
  . /etc/conf.d/${daemon_name}
  PID_FILE=/var/run/tomcat7.pid
get_pid() {
pidof -o %PPID ${daemon_name}
}
   
  case "$1" in
  case "$1" in
        start)
  start)
                stat_busy "Starting Tomcat 7"
    stat_busy "Starting ${daemon_name} daemon"
                $JSVC_BIN \
                        -user tomcat7 \
    PID=$(get_pid)
                        '''-home $JAVA_HOME \'''
    if [ -z "$PID" ]; then
(Anmerkung: Für das Sun/Oracle JDK die markierten Stellen entsprechend anpassen!)
      [ -f /var/run/${daemon_name}.pid ] && rm -f /var/run/${daemon_name}.pid
      # RUN
      /usr/bin/jsvc \
        -Dcatalina.home=${CATALINA_HOME} \
        -Dcatalina.base=${CATALINA_BASE} \
        -Djava.io.tmpdir=/var/tmp/tomcat7/temp \
        -cp /usr/share/java/commons-daemon.jar:/usr/share/java/eclipse-ecj.jar:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar \
        -user tomcat \
        '''-home $JAVA_HOME \'''
Inwieweit dieser Fehler auch bei Verwendung des Oracle JRE auftritt bleibt noch zu klären.


==Administrative Konten anlegen==
==Administrative Konten anlegen==

Version vom 13. Mai 2011, 22:31 Uhr

Apache Tomcat ist ein in Java geschriebener Servlet-Container, welcher einen JSP-Compiler und einen kompletten HTTP-Server enthält. In diesem Artikel soll auf die Grundinstallation und die Einrichtung der administrativen Konten eingegangen werden.

Installation

Die Version 7 des Apache Tomcat befindet im Extra-Repository:

# pacman -S tomcat7

Verwendung mit OpenJDK

Bei Verwendung des OpenJDK kommt es beim Starten des Tomcat-Daemon zu folgendem Fehler:

:: Starting tomcat7 daemon      [BUSY]
Cannot locate Java Home
                                [FAIL]

Daher sollte das Startscript /etc/rc.d/tomcat7 wiefolgt angepasst werden:

#!/bin/bash

source /etc/profile.d/openjdk6.sh
daemon_name=tomcat7
. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/${daemon_name}

get_pid() {
	pidof -o %PPID ${daemon_name}
}

case "$1" in
  start)
    stat_busy "Starting ${daemon_name} daemon"

    PID=$(get_pid)
    if [ -z "$PID" ]; then
      [ -f /var/run/${daemon_name}.pid ] && rm -f /var/run/${daemon_name}.pid
      # RUN
      /usr/bin/jsvc \
        -Dcatalina.home=${CATALINA_HOME} \
        -Dcatalina.base=${CATALINA_BASE} \
        -Djava.io.tmpdir=/var/tmp/tomcat7/temp \
        -cp /usr/share/java/commons-daemon.jar:/usr/share/java/eclipse-ecj.jar:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar \
        -user tomcat \
        -home $JAVA_HOME \

Inwieweit dieser Fehler auch bei Verwendung des Oracle JRE auftritt bleibt noch zu klären.

Administrative Konten anlegen

Für die Verwaltung des Servers über dessen Web-Interface sollten die entsprechenden Konten eingerichtet werden. Hierbei sollte in der Konfigurationsdatei /usr/share/tomcat7/conf/tomcat-users.xml zumindest ein Nutzer der Rolle manager-gui festgelegt werden, um später Applikationen auf dem Server installieren zu können:

<tomcat-users>
        <role rolename="manager-gui"/>
        <user username="johndoe" password="sehrgeheim" roles="manager-gui"/>
</tomcat-users>

Server starten

Sind alle oben genannten Schritte erfolgreich, kann der Server gestartet werden:

# /etc/rc.d/tomcat7 start

Der Server sollte nun unter http://HOST_NAME:8080 erreichbar sein.

Der Server-Daemon lässt sich bei Bedarf auch in die rc.conf eintragen:

DAEMONS=(... @tomcat7 ...)

Anbindung an Apache HTTP Server

mod_proxy

Seit Version 2.2 des Apache HTTP Server unterstützt mod_proxy auch das Apache JServ Protocol (AJP). Dadurch lässt sich die Anbindung in der Konfigurationsdatei /etc/httpd/conf/httpd.conf sehr einfach einrichten:

ProxyPass        /appname ajp://HOST_NAME:8009/appname
ProxyPassReverse /appname ajp://HOST_NAME:8009/appname

Startreihenfolge der Server-Daemons

Hierbei sollte Tomcat möglichst vor dem Apache HTTP Server gestartet werden:

DAEMONS=(... tomcat7 httpd ...)

Weblinks