changeset 56:f027204baf5d

Added HOWTO to setup the environment artifacts/trunk@325 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 11 Nov 2009 16:25:26 +0000
parents 9a29899b31e5
children cf9848c85755
files ChangeLog HOWTO
diffstat 2 files changed, 282 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Nov 04 14:38:37 2009 +0000
+++ b/ChangeLog	Wed Nov 11 16:25:26 2009 +0000
@@ -1,3 +1,8 @@
+2009-11-11  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	* HOWTO: Added HOWTO describing the setup of the environment (apache, 
+	  tomcat, gnv).
+
 2009-11-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
 
 	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java: describe() now may
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HOWTO	Wed Nov 11 16:25:26 2009 +0000
@@ -0,0 +1,277 @@
+-------------------------------------------------------------------------------
+Installation JDK
+
+Für den Betrieb des Generischen Viewers und der Artefakt-Datenbank wird Java
+benötigt. Um Sun Java über die Apt-Pakete zu installieren, ist es notwendig die
+'non-free' Quellen in die Apt-Quellen einzutragen. Folgender Eintrag ist in die
+Quellen einzutragen:
+    deb http://hetzner:download@download.hetzner.de/debian/mirror lenny main contrib non-free
+
+Anschließend müssen folgende Befehle abgesetzt werden, um die Pakete
+sun-java6-jdk zu installieren:
+    aptitude update
+    aptitude install sun-java6-jdk
+
+Der Befehl
+    java -version
+sollte anschließend etwas ergeben, was dem folgenden ähnelt. 
+
+    java version "1.6.0_12"
+    Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
+    Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)
+
+Die Installation ist erfolgreich abgeschlossen.
+
+
+-------------------------------------------------------------------------------
+Installation/Konfiguration Apache HTTP
+
+Für eine Installation von Apache wir unter anderem das Paket libapache2-mod-jk2
+benötigt. Es stellt Connectoren bereit, um den Apache Webserver mit dem Tomcat
+Server zu verbinden.
+    aptitude install libapache2-mod-jk2
+Dieser Befehl ist für eine Installation des Apache Webservers ausreichend. Alle
+weiteren benötigten Pakete werden automatisch mit installiert.
+
+Nach der Installation der Pakete müssen ein paar kleine Einstellungen
+vorgenommen werden, die den Pfad des Tomcat und des JDKs festlegen. Dazu öffne
+man die Datei /etc/libapache2-mod-jk/workers.properties mit einem Editor seiner
+Wahl, und Ändere die folgenden Zeilen:
+
+    gvim /etc/libapache2-mod-jk/workers.properties
+
+    - workers.tomcat_home=/usr/share/tomcat5
+    + workers.tomcat_home=/usr/share/tomcat5.5
+
+    - workers.java_home=/usr/lib/jvm/java-gcj
+    + workers.java_home=/usr/lib/jvm/java-6-sun/jre
+
+Des Weiteren sind in der http.conf des Apache2 folgende Einträge hinzuzufügen:
+
+    gvim /etc/apache2/http.conf
+
+    + JkWorkersFile "/etc/libapache2-mod-jk/workers.properties"
+    + JkLogFile "/var/log/mod_jk.log"
+
+In der Datei /etc/sites-available/default wird anschließend folgender Eintrag
+benötigt, um das Forwarding vom Apachen zum Tomcat für den GenerischenViewer
+einzurichten:
+
++ JkMount /gnv   ajp13_worker
++ JkMount /gnv/* ajp13_worker
+
++ <Location /gnv>
++     AuthType Basic
++     AuthName "BSH GenViewer"
++     AuthBasicProvider file
++     AuthUserFile /etc/apache2/passwd/genviewer
++     Require valid-user
++
++     # Insert filter
++     SetOutputFilter DEFLATE
++
++     # Netscape 4.x has some problems...
++     BrowserMatch ^Mozilla/4 gzip-only-text/html
++
++     # Netscape 4.06-4.08 have some more problems
++     BrowserMatch ^Mozilla/4\.0[678] no-gzip
++
++     # MSIE masquerades as Netscape, but it is fine
++     BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
++     # Don't compress images
++     SetEnvIfNoCase Request_URI \
++     \.(?:gif|jpe?g|png)$ no-gzip dont-vary
++
++     # Make sure proxies don't deliver the wrong content
++     Header append Vary User-Agent env=!dont-vary
++         </Location>
++
++     <Location /servlets-examples/>
+
+Diese Konfiguration bedarf noch der Aktivierung eines Apache Moduls, was mit
+folgendem Aufruf getan wird:
+
+    a2enmod headers
+
+Die Konfiguration des Apache ist beendet. Starten Sie den Webserver mit
+folgendem Aufruf:
+
+    /etc/init.d/apache2 start
+
+Bei erfolgreicher Installation sollten im Browser bei der Adresse
+http://localhost folgender Text ausgegeben werden:
+
+    It works!
+
+-------------------------------------------------------------------------------
+Installation/Konfiguration Tomcat
+
+Für den Betrieb des Tomcat Servers werden die Pakete tomcat5.5 und
+tomcat5.5-webapps benötigt. Installieren Sie diese über die Apt-Quellen mit
+folgendem Befehl:
+    
+    aptitude install tomcat5.5 tomcat5.5-webapps
+
+Anschließend deaktivieren wir den Standard-HTTP-Connector des Tomcat. Dieser
+soll nicht direkt angesprochen werden können, sondern nur über den Apache
+erreichbar sein. Dazu wird in der Datei /usr/share/tomcat5.5/conf/server.xml
+folgender Code auskommentiert:
+
+    <!--
+        <Connector port="8180" maxHttpHeaderSize="8192" address="127.0.0.1"
+               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
+               enableLookups="false" redirectPort="8443" acceptCount="100"
+               connectionTimeout="20000" disableUploadTimeout="true" />
+    -->
+
+Damit der AJP-Connector, der zur Verbindung des Apache und des Tomcat dient, nur
+auf die Adresse 127.0.0.1, also auf den localhost, lauscht, wird folgende Zeile
+in der Datei /etc/tomcat5.5/server.xml ausgetauscht:
+
+    - <Connector port="8009"
+    -  enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
+
+    + <Connector port="8009" address="127.0.0.1"
+    +  enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
+
+Die Konfiguration des Tomcat ist nun beendet. Dieser lässt sich mit folgendem
+Kommando starten:
+
+    /etc/init.d/tomcat5.5 start
+
+-------------------------------------------------------------------------------
+Download/Installation Geo-Backend
+
+Die Installation des Geo-Backends benötigt neben dem Repository des Geo-Backends
+selbst noch eine weitere, aus denen Jar-Files für benötigt werden. Laden Sie sich
+also folgende Quellen herunter (${GNV} steht hier für das Verzeichnis, in das
+Sie die Quellen laden):
+
+    svn co /path/to/conterra-repo ${GNV}/conterra-repo
+    svn co /path/to/geo-backend/trunk ${GNV}/geo-backend
+
+Zuerst müssen die Bibliotheken installiert werden, von denen das Geo-Backend
+abhängig ist. Dazu folgende Befehle, die die Jar-Files in das lokale Maven
+Repository kopiert (in der Regel nach ~/.m2). Diese können später von Maven
+automatisch dazugeladen werden, wenn Abhängigkeiten zu ihnen bestehen:
+
+    cd ${GNV}/conterra-repo
+    mvn install:install-file -DgroupId=com.esri.sde -DartifactId=jsde_sdk \
+       -Dversion=9.2.5 -Dpackaging=jar -Dfile=conterra-repo/com/esri/sde/jsde_sdk/9.2.5/jsde_sdk-9.2.5.jar
+
+    mvn install:install-file -DgroupId=com.esri.sde -DartifactId=jpe_sdk  \
+       -Dversion=9.2.5 -Dpackaging=jar -Dfile=conterra-repo/com/esri/sde/jpe_sdk/9.2.5/jpe_sdk-9.2.5.jar
+
+    mvn install:install-file -DgroupId=com.ibm -DartifactId=icu4j \
+       -Dversion=3.2 -Dpackaging=jar -Dfile=conterra-repo/com/ibm/icu4j/3.2/icu4j-3.2.jar
+
+Danach wechselt man in das Verzeichnis des Geo-Backends und setzt folgende
+Maven Befehle ab, die die Quellen compilieren und ebenfalls in das lokale Maven
+Repository installieren: 
+
+    cd ${GNV}/geo-backend
+    mvn -Dmaven.test.skip=true clean compile package
+    mvn install:install-file \
+        -DgroupId=de.intevation.bsh.geo-backend \
+        -DartifactId=geo-backend \
+        -Dversion=1.0-SNAPSHOT \
+        -Dpackaging=jar \
+        -Dfile=target/geo-backend-1.0-SNAPSHOT.jar
+
+-------------------------------------------------------------------------------
+Download/Installation Artifact-Server
+
+Laden Sie die Quellen des Artefakt-Servers mit folgendem svn Befehl herunter:
+    
+    svn co /path/to/artifacts/trunk ${GNV}/artifacts
+
+Compilieren Sie die Quellen und installieren sie das Jar-File mit folgendem
+Befehl in das lokale Maven Repository:
+
+    cd ${GNV}/artifacts
+    mvn -Dmaven.test.skip=true clean compile install
+
+Zur Installation des Artefakt-Servers werden die Verzeichnisse
+/opt/artifacts/bin und /opt/artifacts/conf benötigt, in die die Start-Scripte
+und Konfigurationen kopiert werden:
+
+    mkdir -p /opt/artifacts/bin             (Ort für Startscripte)
+    mkdir /opt/artifacts/bin/lib            (Ort für benötigte Bibliotheken)
+    mkdir /opt/artifacts/conf               (Ort für die Konfiguration der Artefakte)
+    mkdir /opt/artifacts/artifact-database  (Ort der Artefakt-Datenbank)
+
+Kopieren Sie anschließend das Start-Script ${GNV}/artifacts/bin/run.sh nach
+/opt/artifacts/bin und geben dem Script Ausführrechte:
+    
+    cp ${GNV}/artifacts/bin/run.sh /opt/artifacts/bin
+    chmod 750 /opt/artifacts/bin
+
+-------------------------------------------------------------------------------
+Download/Installation GNV-Artefakte
+
+Laden Sie die Quellen der GNV-Artefakte folgendermaßen herunter:
+
+    svn co /path/to/gnv-artifacts/trunk ${GNV}/gnv-artifacts
+
+Compilieren Sie die Quellen mit folgendem Befehl (Abhängigkeiten werden
+automatisch aus dem lokalen Maven Repo geladen):
+
+    cd ${GNV}/gnv-artifacts
+    mvn -Dmaven.test.skip=true \
+      clean compile \
+      dependency:copy-dependencies \
+      package
+
+Setzen abschließend folgenden Befehl ab, der die benötigten Bibliotheken zu
+einem Zip-Archiv packt. Diese werden später im Artefakt-Server benötigt:
+
+    find target -name \*.jar -print | zip ${GNV}/libs.zip  -j -@
+
+-------------------------------------------------------------------------------
+Abschließende Konfiguration der Komponenten
+
+Entpacken Sie nun das erstellte Zip-Archiv nach /opt/artifacts/bin/lib :
+
+    unzip ${GNV}/libs.zip -d /opt/artifacts/bin/lib/
+
+Kopieren Sie die Konfiguration der Artefakte nach /opt/artifacts/conf :
+
+    cp -R ${GNV}/gnv-artifacts/doc/* /opt/artifacts/conf/
+
+Am Ende der Konfigurationsdatei /opt/artifacts/conf/conf.xml können
+Einstellungen der Datenbank vorgenommen werden. Ändern Sie dort den User in
+einen beliebigen Nutzer $USER und das Passwort in ein beliebiges Passwort
+$PASSWORT. Setzen Sie den Pfad der der Datenbank außerdem auf
+/opt/artifacts/artifact-database: 
+
+    vim /opt/artifacts/conf/conf.xml
+    - <user>USER</user>
+    - <password>PASSWORD</password>
+    - <!-- url>jdbc:h2:/opt/artifacts/artifacts/artifacts.db</url>
+
+    + <user>$USER</user>
+    + <password>$PASSWORD</password>
+    + <!-- url>jdbc:h2:/opt/artifacts/artifact-database/artifacts.db</url>
+
+
+Diese Einstellungen werden nun beim Anlegen der Datenbank benötigt. Dazu setzen
+Sie folgende Befehle ab und setzen an Stelle von $USER und $PASSWORD den von 
+ihnen konfigurierte Nutzer und entsprechendes Passwort sowie den Pfad zur 
+Datenbank ein:
+
+    cd /opt/artifacts
+    java -cp bin/lib/h2-1.1.117.jar org.h2.tools.RunScript \
+      -user $USER \
+      -password $PASSWORD \
+      -url jdbc:h2:artifact-database/artifacts.db \
+      -script ${GNV}/artifacts/artifact-database/doc/schema-h2.sql
+
+-------------------------------------------------------------------------------
+Start des GNV
+
+Sollten Sie den Apache2 Webserver bzw den Tomcat Server noch nicht gestartet
+haben, tun Sie dies nun. Desweiteren starten Sie den Artefakt-Server mit
+folgendem Befehl:
+
+    cd /opt/artifacts/bin
+    ./run.sh

http://dive4elements.wald.intevation.org