Inhaltsverzeichnis
Das Java Development Kit ist eine unabdingbare Voraussetzung. Meistens
wird es schon installiert sein; wenn nicht, finden sich im folgenden Quellen und
Anleitung dazu.
Man beachte auch die Erzeugung einer $JAVA_HOME-Umgebungsvariablen!
Quelle:
http://java.sun.com/j2se/1.3/download-linux.html
Zielverzeichnis: /usr/lib/jdk1.3.1
Danach wird in /etc/profile (RedHat 7.x) bzw. /etc/profile.local (SuSE 7.x) der CLASSPATH angepasst. Eintrag von jdk1.7.7. o. ä. entfernen (so vorhanden) und durch folgende .jar-Archive aus jdk1.3.1 ersetzen:
CLASSPATH=/usr/lib/jdk1.3.1/src.jar:\ /usr/lib/jdk1.3.1/lib/tools.jar:\ /usr/lib/jdk1.3.1/lib/jpda.jar:\ /usr/lib/jdk1.3.1/lib/dt.jar:\ ...(weitere Einträge)... export CLASSPATH
Der Eintrag: src.jar wird von der offiziellen Sun-Installationsanleitung für Linux
unter:
http://java.sun.com/j2se/1.3/install-linux-sdk.html
nicht ausdrücklich verlangt, aber sicher ist sicher.
Auch die PATH-Umgebung in /etc/profile braucht einen entsprechenden
Eintrag:
Inhaltsverzeichnis
Sowohl SuSE als auch RedHat installieren Apache in verschiedene Verzeichnisse zugleich. Das ist für die Installation und Konfiguration von Tomcat und Cocoon eher ungünstig. Um etwelche Konflikte zu vermeiden habe ich zunächst den vorhandenen Apache deinstalliert.
Quelle:
http://httpd.apache.org/dist
Zielverzeichnis:
/usr/local
auspacken mit: tar -xzf apache_1.3.20.tar.gz
Es entsteht das Verzeichnis: /usr/local/apache_1.3.20
Wechsel in das Verzeichnis und Apache konfigurieren mit folgendem Shell-Skript:
Danach make und make install ausführen. Es entsteht das Verzeichnis: $APACHE_HOME, z.B. /usr/local/apache.
Testen, ob auch alles funktioniert hat:Auf der Kommandozeile
/usr/local/apache/bin/apachectl start ausführen und im Browser als http-Adresse: http://localhost eingeben.
Wenn alles funktioniert hat, erscheint die Startseite von Apache.
Inhaltsverzeichnis
Inhaltsverzeichnis
Alle Sourcen für Tomcat sollen zusammen in ein eigenes Verzeichnis gebracht werden. Das ist hier: /usr/local/jakarta ($JAKARTA_HOME).
Quelle:
http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.2.3/src/jakarta-servletapi-3.2-src.tar.gz
und
http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.2.3/src/jakarta-tomcat-3.2.3-src.tar.gz
Zielverzeichnis:
/usr/local/jakarta
Beim Auspacken entstehen dort die Verzeichnisse:
... /jakarta-servletapi-3.2-src bzw.
... /jakarta-tomcat-3.2.3-src.
Die müssen umbenannt werden in:
/usr/local/jakarta/jakarta-servletapi bzw.
/usr/local/jakarta/jakarta-tomcat.
Quelle:
http://java.sun.com/xml
Zielverzeichnis:
/usr/local/jakarta
Nach dem Auspacken werden die dort enthaltenen .jar-Archive:
| jaxp.jar |
| parser.jar |
Quelle:
http://java.sun.com/products/jsse
Bemerkung: Man muss sich registrieren lassen, um diese source downloaden zu können.
Zielverzeichnis:
/usr/local/jakarta
Auch deren .jar-Archive in:
/usr/local/jakarta/jsse/lib
werden $CLASSPATH in /etc/profile (RedHat) bzw. /etc/profile.local (SuSE)
bekannt gemacht.
Quelle:
http://jakarta.apache.org/builds/jakarta-ant/release/v1.2/bin
Zielverzeichnis erzeugen:
/usr/local/jakarta/jakarta-ant, die Source herunterladen und dort entpacken
Das Verzeichnis muss genau so heißen, wie unten angegeben, sonst funktioniert bild.sh von Tomcat nicht.
Achtung! Die Ant-Source ist die einzige, die nicht in ein eigenes Verzeichnis entpackt, sondern in das, in dem sie steht. Also: Erst jakarta-ant erzeugen, dann die Source dorthin kopieren, dann entpacken!
Das .jar-Archiv ant.jar wird $CLASSPATH bekannt gemacht, wie gehabt.
Inhaltsverzeichnis
Um die eben in:
/etc/profile bzw. /etc/profile.local eingetragenen Ergänzungen wirksam zu
machen: Ausloggen und wieder Einloggen oder rebooten.
Natürlich tut es auch ein: source /etc/profile, aber nur für das xterm-Fenster, in dem es stattfindet.
Außerdem empfiehlt es sich, zu prüfen, ob die mit echo $PATH ausgegebenen /bin-Verzeichnisse auch tatsächlich existieren. Beim Installieren von ApacheJServ ist das jedenfalls zwingend; deshalb kann die Überprüfung für Tomcat nicht schaden.
Man muss dafür sorgen, dass die Verzeichnisse:
/usr/local/jakarta/jakarta-servletapi,
/usr/local/jakarta/jakarta-tomcat und
/usr/local/jakarta/jakarta-ant
auch genau so heißen, sonst funktioniert ./build.sh
nicht!
Ant ist ein verbessertes, für java optimiertes make und wird im Folgenden zur Kompilation der Sourcen benutzt.
Im Verzeichnis: /usr/local/jakarta die Arbeitsschritte ausführen:
Es entsteht das Verzeichnis:
/usr/local/jakarta/dist/servletapi
Bevor Tomcat das erste Mal ausgeführt werden soll, ist folgendes zu beachten: Wenn beim Booten des Systems ein Apache mit gestartet wird, und wenn in diesem Apache, z.B. von ApacheJServ oder von Cocoon, der Port 8080 verwendet wird, dann gibt Tomcat beim Starten die Fehlermeldung aus: Adresse wird schon benutzt.
Als Standalone-Server funktioniert Tomcat dann trotzdem, nur die Einbindung in
einen anderen Apache gelingt nicht. Anhalten des ursprünglichen Apache nützt
dabei gar nichts!
Deshalb sollte der automatische Start von Apache beim Booten unterbunden und
ein Reboot gemacht werden.
Im Verzeichnis: $TOMCAT_HOME/bin (in unserem Beispiel: /usr/local/jakarta/dist/tomcat/bin)
wird das Kommando ausgeführt: ./startup.sh
Tomcat anhalten: ./shutdown.sh
http://localhost:8080 bringt die Startseite von Tomcat auf den Browser.
Ich habe mir zum Starten und Anhalten von Tomcat kleine Shell-Skripte geschrieben:
Inhaltsverzeichnis
Für das Arbeiten mit XML reicht Tomcat als Server vollkommen aus. Aber für Produktionszwecke nicht, hier sollte er auf Apache aufgesetzt werden.
mod_jkist das Modul, das Apache die Zusammenarbeit mit Tomcat ermöglicht.
Eine Anleitung zum Erzeugen und Installieren von mod_jk findet sich in:
http://jakarta.apache.org/tomcat/jakarta-tomcat/src/doc/mod_jk-howto.html
Die Arbeitsschritte im Einzelnen:
Nach einem längeren Kompiliervorgang entsteht die ausführbare Datei: mod_jk.so
Achtung! Genau die oben zitierte Syntax verwenden! Die in http://jakarta.apache.org/tomcat/jakarta-tomcat/src/doc/mod_jk-howto.html angegebene führt jedenfalls unter Linux nicht zu den richtigen Ergebnissen!
mod_jk.so wird in Apaches libexec kopiert:
$APACHE_HOME/libexec/mod_jk.so
ajpv ist das Protokoll, mit dem mod_jk die Kommunikation zwischen Apache und der Servlet Engine abwickelt. ajpv13 ist die aktuelle Version. Als Vorgriff sei hier erwähnt, dass Cocoon unter ajpv13 erheblich schneller zu arbeiten scheint als unter ajpv12, ungefähr um den Faktor 3 (gilt nur für den ersten Aufruf einer .xml-Seite).
Um das Protokoll ajpv13 für Tomcat verwendbar zu machen, muss in der Datei:
/usr/local/jakarta/dist/tomcat/conf/server.xml
der Block ergänzt werden:
<!-- Apache AJP13 support -->
<Connector className="org.apache.tomcat.service.PoolTcpConnector">
<Parameter name="handler"
value="org.apache.tomcat.service.connector.Ajp13ConnectionHandler"/>
<Parameter name="port" value="8009"/>
</Connector>
Beim Neustart von Tomcat wird aus dieser Datei und einigen anderen Inputs automatisch die Datei:Apache muss mitgeteilt werden, wo er die Konfigurationsdateien für Tomcat findet.
Im File:
$APACHE_HOME/conf/httpd.conf
wird vor der Subsection 3: Virtual Hosts die Zeile eingetragen:
Include /usr/local/jakarta/dist/tomcat/conf/mod_jk.conf-auto
An dieser Stelle sei vorgegriffen, dass die Arbeit mit Cocoon Eintragungen von Hand in dieser Konfigurationsdatei braucht. Da sie aber bei jedem Neustart von Tomcat überschrieben wird, ist es zu empfehlen, sie nach Abschluss aller sonstigen Konfigurationsarbeiten und Neustart von Tomcat umzubennen und diese neue Datei dann zu editieren. Natürlich muss sie wiederum Apache bekannt gemacht werden:
In der Datei:
/usr/local/jakarta/dist/tomcat/conf/server.xml
wird entlang des Beispiels aus dem mod_jk-HOWTO folgende Eintragung gemacht:
<Host name="127.0.0.2" >
<Context path=""
docBase="webapps/examples" />
<Context path="/examples"
docBase="webapps/ROOT" />
</Host>
In der Datei:
/usr/local/jakarta/dist/tomcat/conf/workers.properties.xml
müssen $TOMCAT_HOME, $JAVA_HOME und die Form des Slashes eingetragen werden:
# # workers.tomcat_home should point to the location where you # installed tomcat. This is where you have your conf, webapps and lib # directories. # workers.tomcat_home=/usr/local/jakarta/dist/tomcat # # workers.java_home should point to your Java installation. Normally # you should have a bin and lib directories beneath it. # workers.java_home=/usr/lib/jdk1.3.1/ # # You should configure your environment slash... ps=\ on NT and / on UNIX # and maybe something different elsewhere. # # ps=\ ps=/ #
Es gab Probleme mit den Pfadangaben als Umgebungsvariablen, deshalb wurden an dieser Stelle absolute Pfadangaben gewählt.
Tomcat und Apache werden in genau dieser Reihenfolge hochgefahren, weil ja Tomcat erst die mod_jk.conf-auto erzeugt, die Apache braucht. Das gilt natürlich nur, wenn sie nicht umbenannt und damit statisch gemacht worden ist.
/usr/local/jakarta/dist/tomcat/bin/startup.sh
$APACHE_HOME/bin/apachectl start
http://localhost/examples/servlets bringt eine Startseite im Browser, von der aus verschiedene Servlets gestartet werden können.
Inhaltsverzeichnis
Cocoon ist das XML-Redaktionswerkzeug von xml.apache.org. Es wurde ausgewählt, weil es zu diesem Zeitpunkt von allen XML-Produktionswerkzeugen das ausgereifteste war, mit der längsten kontinuierlichen Entwicklung.
Inhaltsverzeichnis
Diese Standalone-Lösung, vollständig auf Java-Basis und damit weitgehend plattformunabhängig, reicht für alle XML-Belange aus, die keine harten Produktionsbedingungen überstehen müssen; also beispielsweise für Dokumentation in DocBook u.ä.
Quelle:
http://xml.apache.org/dist/cocoon
Zielverzeichnis:
/usr/local/jakarta
Auspacken mit: tar -xzf Cocoon-1.8.tar.gz
Es entsteht das Verzeichnis:
/usr/local/jakarta/cocoon-1.8
Ich verfahre nach einer Anleitung im Linux-Magazin 10/2000, S. 144ff: Eingesponnen, von Bernhard Bablok, abgewandelt für die etwas anderen Verhältnisse unter Tomcat-3.2.3.
Im Verzeichnis:
/usr/local/jakarta/dist/tomcat/lib
das .jar-Archiv:
parser.jar umbenannt werden in:
zparser.jar.
Das liegt darin begründet, dass die Parser-Maschine in xerces.jar als erste im $CLASSPATH stehen muss, sonst funktioniert Cocoon nicht.
Aus dem Verzeichnis:
/usr/local/jakarta/cocoon-1.8/lib werden alle .jar-Archive:
/usr/local/jakarta/cocoon-1.8 wird als COCOON_HOME eingetragen in: /etc/profile (RedHat) bzw. /etc/profile.local (SuSE).
Aus dem Verzeichnis:
/usr/local/jakarta/cocoon-1.8/src/WEB-INF
wird die Datei:
web.xml
und aus dem Verzeichnis:
/usr/local/jakarta/cocoon-1.8/conf
wird die Datei:
cocoon.properties
kopiert in das Verzeichnis:
/usr/local/jakarta/dist/tomcat/webapps/cocoon/WEB-INF
Tomcat muss mitgeteilt werden, wo er die Datei:
cocoon.properties
findet. Dazu in der Datei:
/usr/local/jakarta/dist/tomcat/webapps/cocoon/WEB-Inf/web.xml
die Zeile editieren:
<param-value>WEB-INF/cocoon.properties</param-value>
Bislang funktioniert Apache mit Tomcat als Servlet Engine, und Cocoon arbeitet mit Tomcat standalone. Nun müssen alle drei zusammengebracht werden.
Es gibt eine quick and dirty-Installationsanleitung unter:
http://tecfa.unige.ch/guides/xml/cocoon/install-notes-18.html
Zu der Anleitung von xml.apache/cocoon ist nämlich zu sagen, dass an
entscheidender Stelle noch der File: tomcat-apache.conf als Konfigurationsdatei angegeben wird. Der
ist aber für die Verwendung von Tomcat mit dem älteren Apache_Modul mod_jserv gedacht, und
nicht für mod_jk!
Zunächst wird die Datei:
/usr/local/jakarta/dist/tomcat/conf/mod_jk.conf-auto
gesichert als jakarta.conf und eingetragen in:
$APACHE_HOME/conf/httpd.conf als:
# # Konfigurationsdatei für mod_jk/tomcat # include /usr/local/jakarta/dist/tomcat/conf/jakarta.conf ### section 3: Virtual Hosts #
Ein kurzer Test ergibt, dass so immer noch Tomcat unter Apache arbeitet. Es ist jetzt nicht mehr nötig, bei Konfigurationsarbeiten Tomcat zu stoppen und zu
starten, denn alle Änderungen an jakarta.conf erfolgen von Hand.
Apache muss allerdings nach wie vor neu gestartet werden, damit neue
Konfigurationen wirksam werden.
Nun muss Apache mitgeteilt werden in:
/usr/local/jakarta/dist/tomcat/conf/jakarta.conf,
dass Tomcat und damit Cocoon für die Arbeit mit .xml-Files zuständig sind:
JkMount /cocoon/*.xml ajp13
Den Ort, wo Apache Cocoon findet, trägt Tomcat beim Hochfahren automatisch in mod_jk.conf-auto ein:
#
# The following line makes apache aware of the location of the /cocoon context
#
Alias /cocoon "/usr/local/jakarta/dist/tomcat/webapps/cocoon"
<Directory "/usr/local/jakarta/dist/tomcat/webapps/cocoon">
Options Indexes FollowSymLinks
</Directory>
Apache neu starten, folgende Adresse versuchen:
http://localhost/cocoon
Es sollte die Startseite von Cocoon erscheinen, und die Live Samples sollten funktionieren.
Inhaltsverzeichnis
Oft hat es sich als schwierig erwiesen, mit aus dem Zusammenhang gerissenen Stücken von Konfigurationsdateien zu arbeiten. Deshalb dokumentiere ich an dieser Stelle alle von mir verwendeten entsprechenden Dateien.
Das verwendete Betriebssystem ist ein RedHat 7.x auf einer Intel Pentium pro 200
bzw. ein SuSE 7.x auf einem Intel Celeron 366. Alle relevanten Eintragungen zu
Pfaden usw. wurden in der Datei:
/etc/profile (RedHat) bzw.
/etc/profile.local (SuSE) gemacht.
Der neue Apache2 (Beta-Stadium) und Tomcat sind derzeit noch nicht zur Zusammenarbeit zu bewegen. Deshalb musste für diese Installation noch der aktuelle Apache 1.3.x herhalten. Sobald Apache2 einsatzfähig ist, wird er eingebunden.
Konfigurationsdatei: /usr/local/apache/conf/httpd.conf
Tomcat ist Bestandteil des jakarta.apache-Projektes (http://jakarta.apache.org) und ersetzt als Servlet Engine den älteren ApacheJServ.
/usr/local/jakarta/dist/tomcat/conf/server.xml
server.xml ist der grundlegende Konfigurationsfile für Tomcat. Die Idee ist, dass
daraus bei jedem Neustart alles an Konfigurationen generiert wird, was Tomcat so
braucht. Leider klappt das in der Praxis noch nicht hundertprozentig...
server.xml
/usr/local/jakarta/dist/tomcat/conf/jakarta.conf
Tomcat generiert bei jedem Neustart eine Datei namens mod_jk.conf-auto, die als Ergänzung für httpd.conf gedacht ist. Darin ist es jedoch nicht sinnvoll zu editieren.
Deshalb empfiehlt es sich, diese Datei umzubenennen und erst unter dem neuen Namen Apache in: httpd.conf bekannt zu machen.
jakarta.conf
/usr/local/jakarta/dist/tomcat/conf/web.xml
Auch aus den Angaben in: web.xml generiert Tomcat beim Neustart dynamisch Konfigurationen.
web.xml
/usr/local/jakarta/dist/tomcat/conf/workers.properties
Eine weitere Tomcat-Konfigurationsdatei.
workers.properties
Die Datei web.xml wird von:
/usr/local/jakarta/cocoon-1.8/src/WEB-INF
kopiert nach:
$TOMCAT_HOME/webapps/cocoon/WEB-INF
web.xml
Aus dem Verzeichnis:
/usr/local/jakarta/cocoon-1.8/conf
wird die Datei: cocoon.properties
kopiert nach:
/usr/local/jakarta/dist/tomcat/webapps/cocoon/WEB-INF
Hier finden Konfigurationen für Cocoon selbst statt, wie z.B. Einbinden von Modulen, Ändern der Parser, Einstellen zusätzlicher Taglibs u.dgl. m.
cocoon.properties