rrenkert@7769: ===============================================================================
rrenkert@7769: Installation Dive4Elements-river
rrenkert@7769: ===============================================================================
rrenkert@7769:
rrenkert@7769: Diese Anleitung geht davon aus, dass ein Benutzer 'd4euser' existiert, der
rrenkert@7769: angemeldet ist und mit dem die Schritte der Installation durchgeführt werden.
rrenkert@7769:
tom@7776: Die Installationsanleitung wurde mit Debian wheezy getestet. Die Versionen
tom@7776: der im nächsten Schritt installierten Pakete waren zu diesem Zeitpunkt:
tom@7776: _ openjdk-7-jdk 7u25-2.3.10-1~deb7u1
tom@7776: _ tomcat6 6.0.35-6+deb7u1
tom@7776: _ postgresql-9.1-postgis 1.5.3-2
tom@7776: _ apache2 2.2.22-13+deb7u1
tom@7776: _ cgi-mapserver 6.0.1-3.2+deb7u2
tom@7776: _ ttf-freefont 20120503-1
teichmann@7814: _ libapache2-mod-jk 1.2.37-1
tom@7776: Für die Installation aus den Quellen:
tom@7776: _ maven2 2.2.1-12
tom@7776: _ mercurial 2.2.2-3
tom@7776: _ subversion 1.6.17dfsg-4+deb7u4
tom@7776: _ build-essential 11.5
rrenkert@7769:
rrenkert@7769: Erforderliche Pakete zum Installieren von D4E-river
rrenkert@7769: ===================================================
rrenkert@7769: $ su root
teichmann@7814: # apt-get install openjdk-7-jdk
teichmann@7814: # apt-get install tmux
teichmann@7814: # apt-get install tomcat6 postgresql-9.1-postgis \
rrenkert@7812: apache2 cgi-mapserver ttf-freefont libapache2-mod-jk
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Benutzer und Verzeichnis für die Serverkomponente anlegen
rrenkert@7769: =========================================================
teichmann@7814: # useradd -d /home/d4e d4e
teichmann@7814: # cd /opt/
teichmann@7814: # mkdir d4e-river
teichmann@7814: # chown d4e d4e-river/
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Benutzer und Gruppe für das Logging anlegen
rrenkert@7769: ===========================================
teichmann@7814: # groupadd d4e_log
teichmann@7814: # usermod -a -G d4e_log d4e
teichmann@7814: # usermod -a -G d4e_log tomcat6
teichmann@7814: # usermod -a -G d4e_log www-data
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Anlegen des Logging Verzeichnisses
rrenkert@7769: ==================================
teichmann@7814: # mkdir /var/log/d4e-river
teichmann@7814: # chgrp d4e_log /var/log/d4e-river
teichmann@7814: # chmod 775 /var/log/d4e-river
teichmann@7814: # exit
rrenkert@7769:
rrenkert@7769:
tom@7786: Installation von D4E-river aus Binärpaket
tom@7786: =========================================
tom@7786:
rrenkert@7769: Entpacken des Dive4Elements-river Installer-Pakets
tom@7786: --------------------------------------------------
rrenkert@7769: $ tar -xzf d4e-river.tar.gz
rrenkert@7769: @TODO: eventuell anpassen
rrenkert@7769:
rrenkert@7769: Erfolgt die Installation von D4E-river aus den Binärpaketen, können die
rrenkert@7769: folgenden Schritte übersprungen werden.
rrenkert@7769: Die weiteren Schritte sind ab dem Abschnitt 'Backenddatenbanken'
rrenkert@7769: beschrieben.
rrenkert@7769:
rrenkert@7769:
tom@7786: Installation von D4E-river aus den Quellen
tom@7786: ==========================================
tom@7786:
rrenkert@7769: Pakete zum Bauen von D4E-river
rrenkert@7769: ------------------------------
tom@7786: $ su root
teichmann@7814: # apt-get install maven2 mercurial
rrenkert@7769:
rrenkert@7769:
tom@7785: Installation der Intevationszertifikate für den Checkout von Wald
tom@7785: -----------------------------------------------------------------
tom@7785: Installation der Serverzertifikate von Intevation
tom@7785: (siehe auch https://ssl.intevation.de)
rrenkert@7769:
teichmann@7814: # apt-get install ca-certificates curl gnutls-bin
teichmann@7814: # curl https://ssl.intevation.de/Intevation-Root-CA-2010.crt | \
rrenkert@7769: certtool -i | awk '/^-----BEGIN CERTIFICATE-----$/ , 0' > \
rrenkert@7769: /usr/local/share/ca-certificates/Intevation-Root-CA-2010.crt
teichmann@7814: # update-ca-certificates
rrenkert@7769:
tom@7786: #. Mercurial beibringen die Zertifikate zu nutzen:
tom@7786: # hierzu kann beispielsweise die Systemweite mercurial Konfiguration
tom@7786: # editiert werden, z.B. mit dem Editor nano:
tom@7786: $ nano /etc/mercurial/hgrc
rrenkert@7769:
rrenkert@7769: # Folgendes einfügen (siehe https://intranet.intevation.de/Mercurial#https)
rrenkert@7769: [web]
rrenkert@7769: cacerts = /etc/ssl/certs/ca-certificates.crt
rrenkert@7769:
teichmann@7814: # exit # d4euser werden
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Checkout der D4E-Quellen
rrenkert@7769: ------------------------
rrenkert@7769: $ mkdir d4e-river
rrenkert@7769: $ cd d4e-river
rrenkert@7769: $ hg clone https://scm.wald.intevation.org/hg/dive4elements/framework/
rrenkert@7769: $ hg clone https://scm.wald.intevation.org/hg/dive4elements/http-client/
rrenkert@7769: $ hg clone https://scm.wald.intevation.org/hg/dive4elements/river/
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Anpassen der Clientkonfiguration
rrenkert@7769: --------------------------------
rrenkert@7769: $ cd river/gwt-client/src/main/webapp/WEB-INF/
rrenkert@7769:
rrenkert@7769: #. Mapfishprint config.yaml anpassen
rrenkert@7769:
tom@7786: $ nano config.yaml
rrenkert@7769:
tom@7788: Folgenden Eintrag im Abschnitt 'the list of allowed hosts' hinzufügen
tom@7788: (darauf achten, dass die Einrückung mit den bestehenden Einträgen übereinstimmt):
rrenkert@7769:
rrenkert@7769: - !dnsMatch
teichmann@7814: host: localhost # Hier den Hostnamen verwenden auf dem der MapServer läuft.
rrenkert@7769: port: 8081 # Den entsprechenden Port eintragen.
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Anpassen der Serverkonfiguration
rrenkert@7769: --------------------------------
tom@7786: $ cd ~/d4e-river/river/artifacts/doc/conf/
rrenkert@7769:
rrenkert@7769: #. Pfad zu den DGMs anpassen:
tom@7788: $ nano conf.xml
tom@7786: /opt/d4e-river/dgm/
rrenkert@7769:
rrenkert@7769: #. Einstellen der WMS Urls
tom@7781: # Anstatt yourhost:8081 in rivermap.xml und floodmap.xml den korrekten
tom@7781: # Host eintragen auf dem der MapServer läuft
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Konfigurieren des Logging
rrenkert@7769: -------------------------
tom@7783: # Anpassungen des Loggings können für den Client in
tom@7783: # river/gwt-client/src/main/webapp/WEB-INF/log4j.properties
tom@7783: # und für den Server in river/artifacts/doc/conf/log4j.properties
tom@7783: # vorgenommen werden
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Bauen der Server- und Clientkomponenten
rrenkert@7769: ---------------------------------------
tom@7788: $ cd ~/d4e-river/framework
tom@7788: $ mvn install
rrenkert@7769: $ cd ../http-client/
tom@7788: $ mvn install
rrenkert@7769: $ cd ../river/backend/
tom@7788: $ mvn install
rrenkert@7769: $ cd ../artifacts/
tom@7788: $ mvn package dependency:copy-dependencies
rrenkert@7769: $ cd ../gwt-client/
rrenkert@7769: $ curl -O http://openlayers.org/download/OpenLayers-2.11.tar.gz
rrenkert@7769: $ tar xvfz OpenLayers-2.11.tar.gz
rrenkert@7769: $ mv OpenLayers-2.11 src/main/webapp/
tom@7788: $ mvn package
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Kopieren der Serverkomponenten
rrenkert@7769: ------------------------------
rrenkert@7769: $ su root
teichmann@7814: # su d4e
rrenkert@7769: $ cd /opt/d4e-river/
rrenkert@7769: $ mkdir -p bin/lib
rrenkert@7769: $ cp /home/d4euser/d4e-river/river/artifacts/target/river-artifacts-1.0-SNAPSHOT.jar bin/lib/
rrenkert@7769: $ cp /home/d4euser/d4e-river/river/artifacts/target/dependency/* bin/lib/
rrenkert@7769: $ mkdir conf
tom@7788: $ cp -R /home/d4euser/d4e-river/river/artifacts/doc/conf/* conf/
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Artefaktdatenbank erstellen
rrenkert@7769: ===========================
rrenkert@7769: $ /home/d4euser/d4e-river/river/contrib/make_flys_release/h2/createArtifacts.sh \
rrenkert@7769: /home/d4euser/d4e-river/framework/artifact-database/doc/schema-h2.sql
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Datenkorbdatenbank erstellen
rrenkert@7769: ============================
rrenkert@7769: $ /home/d4euser/d4e-river/river/contrib/make_flys_release/h2/createDatacage.sh \
rrenkert@7769: /home/d4euser/d4e-river/river/artifacts/doc/conf/datacage.sql
rrenkert@7769: $ exit
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Backenddatenbanken (Fachdatenbank und Seddb)
rrenkert@7769: ============================================
rrenkert@7769:
rrenkert@7769: Anlegen und befüllen der Datenbanken
rrenkert@7769: ------------------------------------
rrenkert@7769: #. Einspielen des Schemas für die Backenddatenbank
teichmann@7814: # su postgres
rrenkert@7769: $ cd /home/d4euser/d4e-river/river/backend/doc/schema/
rrenkert@7769: $ ./postgresql-setup.sh d4e . localhost
rrenkert@7769:
rrenkert@7769: #. Einspielen der Daten in die erstellte DB
tom@7788: # Demodaten von www.dive4elements.org herunterladen und entpacken
tom@7788: $ psql -d d4e -f /home/d4euser/d4e-river/demodaten/d4e_demodata.dump.sql
rrenkert@7769:
tom@7788: #. Erstellen der SedDB
tom@7788: $ createuser -S -D -R seddb
rrenkert@7769: $ createdb seddb
tom@7788: $ psql -c "ALTER USER seddb WITH PASSWORD 'seddb';"
tom@7788: $ psql -U seddb -h localhost -f /home/d4euser/d4e-river/demodaten/seddb_demodata.dump.sql
rrenkert@7769:
tom@7788: #. wieder root werden
rrenkert@7769: $ exit
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Kopieren der DGMs
rrenkert@7769: =================
teichmann@7814: # su d4e
rrenkert@7769: $ mkdir /opt/d4e-river/dgm
tom@7788: $ cp /home/d4euser/d4e-river/demodaten/dem* /opt/d4e-river/dgm
tom@7797: $ exit
tom@7797: $ exit
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Einrichten von WSPLGEN
rrenkert@7769: ======================
rrenkert@7769: WSPLGEN kann als ausführbare Datei heruntergeladen werden
tom@7797: (https://wald.intevation.org/projects/wsplgen/). Die Datei muss
rrenkert@7769: dann nur noch in das 'bin' Verzeichnis des D4E-river Servers kopiert werden.
rrenkert@7769:
teichmann@7814: # su d4euser
tom@7797: $ cd ~/d4e-river
teichmann@7814:
teichmann@7814: Für 64bit Systeme:
teichmann@7814:
tom@7797: $ wget https://wald.intevation.org/frs/download.php/1496/wsplgen-linux-64bit-static.gz
tom@7797: $ gunzip wsplgen-linux-64bit-static.gz
tom@7797: $ echo "16d60047aa114d69e9435dbbe56b6981b4e1c445 wsplgen-linux-64bit-static" | \
tom@7797: sha1sum -c
rrenkert@7769: $ su root
teichmann@7814: # su d4e
teichmann@7814: $ cp /home/d4euser/d4e-river/wsplgen-linux-64bit-static /opt/d4e-river/bin/wsplgen
teichmann@7814: $ chmod +x /opt/d4e-river/bin/wsplgen
teichmann@7814: $ exit
teichmann@7814:
teichmann@7814: Für 32bit Systeme:
teichmann@7814:
teichmann@7814: $ wget https://wald.intevation.org/frs/download.php/1498/wsplgen-linux-32bit-static.gz
teichmann@7814: $ gunzip wsplgen-linux-32bit-static.gz
teichmann@7814: $ echo "aafd2b770ff8293d452ad3eb3321f2ed04f3f371 wsplgen-linux-32bit-static" | \
teichmann@7814: sha1sum -c
teichmann@7814: $ su root
teichmann@7814: # su d4e
teichmann@7814: $ cp /home/d4euser/d4e-river/wsplgen-linux-32bit-static /opt/d4e-river/bin/wsplgen
teichmann@7814: $ chmod +x /opt/d4e-river/bin/wsplgen
tom@7802: $ exit
rrenkert@7769:
rrenkert@7769:
rrenkert@7769: Einrichten des Mapserver und Apache
rrenkert@7769: ===================================
rrenkert@7769: #. Anlegen der cgi-Skripte für die WMS-Dienste
rrenkert@7769:
teichmann@7814: # cd /usr/lib/cgi-bin/
teichmann@7814: # cat > user-wms < river-wms <
rrenkert@7812:
rrenkert@7812: einkommentiert werden.
rrenkert@7769:
teichmann@7814: # /etc/init.d/tomcat6 restart
teichmann@7814:
rrenkert@7769: Einrichtung der D4E-Benutzer und -Rollen
rrenkert@7769: ========================================
rrenkert@7769: #. Authentifizierung über lokale Datei
tom@7786: # Die Datei enthält durch Leerzeichen getrennt je Zeile
tom@7786: # Benutzer, Passwort und Gruppe
teichmann@7814: # cd /usr/share/tomcat6/
teichmann@7814: # cat > flys_user_file <