Freitag, 26. Dezember 2008

Tomcat 6 mit Apache Connector und ohne VirtualHosts auf Lenny

1. Java einrichten


1.1 Installation:


Zuerst installieren wir das Sun JDK aus den non-free Quellen. Alternativ kann auch OpenJDK verwendet werden, dann muss man aber bei den Pfadangaben in den Configs aufpassen (Paket: java6-runtime).
Dieses Howto beschreibt die Installation mit dem Sun JDK:
# aptitude install sun-java6-jdk

Die Java Version noch ueber
# update-alternatives --config java
auswaehlen.

1.2 Umgebungsvariablen:


# vim /etc/profile

Am Anfang der Datei folgendes hinzufuegen (bei OpenJDK entsprechend abaendern):
JAVA_HOME="/usr/lib/jvm/java-6-sun"

Am Ende der Datei bei "export" muss nun folgendes stehen:
export PATH JAVA_HOME PS1

2. Tomcat einrichten


2.1 Installation


Tomcat 6 von der Homepage herunterladen.
# wget http://apache.eu.lucid.dk/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz

entpacken, und nach /usr/local/ kopieren:
# tar -xzvf apache-tomcat-6.0.18.tar.gz
# mv apache-tomcat-6.0.18 /usr/local

Einen Symlink nach /usr/local/tomcat erstellen
# ln -s /usr/local/apache-tomcat-6.0.18 /usr/local/tomcat

2.2 Initskripte


Die Datei /etc/init.d/tomcat mit folgendem Inhalt fuellen und ausfuehrbar machen:

#!/bin/sh
case $1 in
start)
sh /usr/local/tomcat/bin/startup.sh
;;
stop)
sh /usr/local/tomcat/bin/shutdown.sh
;;
restart)
sh /usr/local/tomcat/bin/shutdown.sh
sh /usr/local/tomcat/bin/startup.sh
;;
esac
exit 0

# chmod +x /etc/init.d/tomcat

# update-rc.d tomcat defaults


3. TomCat Manager


3.1 User anlegen


# vim /usr/local/tomcat/conf/tomcat-users.xml 

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="gas" roles="admin,manager"/>
</tomcat-users>

3.2 Testen


# /etc/init.d/tomcat start

Nun sollte man mit ueber http://ip:8080/manager/html auf den Tomcat Manager zugreifen koennen.

4. Apache einrichten


# aptitude install apache2 libapache2-mod-jk

Die Datei /etc/apache2/workers.properties mit folgendem Inhalt erstellen:
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/lib/jvm/java-6-sun
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

und die eine Datei /etc/apache2/conf.d/jk.conf:
<ifmodule mod_jk.c>
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel error
</ifmodule>

# /etc/init.d/apache2 stop
# /etc/init.d/tomcat restart
# /etc/init.d/apache2 start


5. Sonstiges


5.1 Apache-Einstellungen


Die Datei /etc/apache2/sites-available/default im <VirtualHost *:80> Block um folgende Zeile ergaenzen:
JkMount /*.jsp default
Dadurch werden alle *.jsp Files an den Tomcat uebergeben.
Man kann das auch auf Unterordner einschraenken - wie man will (Bsp: /bla/*.jsp)
# /etc/init.d/apache2 reload


5.2 Tomcat-Einstellungen


Die Datei /usr/local/tomcat/conf/server.xml ganz unten, jedoch noch im Host-Tag um folgende Zeilen ergaenzen:
<host name="servername" appBase="/var/www/" unpackWARs="true" autoDeploy="true">
<context path="" docBase="." debug="0" reloadable="true"/>
<valve className="org.apache.catalina.valves.AccessLogValve"
directory="/var/www/logs" prefix="tomcat_access_" suffix=".log"
pattern="common" resolveHosts="false"/>
</host>

Tomcat neustarten
/etc/init.d/tomcat restart


5.3 Sonstiges


Will man, dass man beim Aufrufen eines Ordners direkt die index.jsp (wie bei index.html, index.php) gezeigt bekommt muss man die /etc/apache2/httpd.conf wie folgt erweitern:
<IfModule dir_module>
DirectoryIndex index.html index.php index.jsp
</IfModule>


6. Hello World


6.1 Skript


# vim /var/www/helloworld.jsp

<head>
<title>Hello World JSP</title>
</head>
<body>
<h1>
<%
out.println("Hello World");
%>
</h1>
</body>
</html>


6.2 Skript mit Tomcat Manager deployen


Im TomCat Manager unter "Deploy":
Context Path (optional): /xyz
WAR or Directory URL: /var/www/
Anschliessend den Deploy-Button druecken

Die Hello World Seite sollte nun unter http://ip/xyz/helloworld.jsp zu sehen sein.

Statt xyz kann man natuerlich auch nur / angeben, dann lautet die Adresse halt http://ip/helloworld.jsp

Keine Kommentare: