andre@7449: ================= andre@7449: FLYS Installation andre@7449: ================= andre@7449: andre@7449: .. contents:: Inhalt andre@7449: andre@7449: Übersicht andre@7449: --------- andre@7449: andre@7449: Dieses Dokument beschreibt die Installation des Fachdienstes FLYS. andre@7449: andre@7449: Abgehandelt werden die Installation der Server Anwendung (D4E-River), andre@7449: der Webanwendung, die Einrichtung der Datenbanken sowie die Einrichtung andre@7449: des Moin Wikis. andre@7449: andre@7449: Als Basis dient ein SUSE Linux Enterprise Server in Version 11.2. andre@7449: andre@7449: Vorbereitung des Systems andre@7449: --------------------------- andre@7449: andre@7449: Die Vorbereitung des Systems ist als Root auf dem Zielsystem durchzuführen. andre@7449: andre@7449: #. Installieren der Benötigten Pakete:: andre@7449: andre@7449: zypper install python-devel python-setuptools libxslt-devel libxml2-devel \ andre@7449: mozilla-nss-devel apache2 tomcat6 mapserver andre@7449: andre@7449: #. Anlegen der Logger Gruppe:: andre@7449: andre@7449: gropadd flys_log andre@7449: andre@7449: #. Anlegen des Flys Nutzers:: andre@7449: andre@7449: useradd -g flys -G users,flys_log,www -m -c "Flys Service User" flys andre@7449: andre@7449: #. tomcat und apache zur flys_log Gruppe hinzufügen:: andre@7449: andre@7449: usermod -G flys_log,tomcat tomcat andre@7449: usermod -G flys_log,wwwrun,www wwwrun andre@7449: andre@7449: #. Logging Verzeichnis anlegen:: andre@7449: andre@7449: mkdir /var/log/flys andre@7449: chgrp flys_log /var/log/flys andre@7449: chmod 770 /var/log/flys andre@7449: andre@7449: #. Betriebsordner Anlegen:: andre@7449: andre@7449: mkdir /opt/flys andre@7449: chown flys /opt/flys andre@7449: andre@7449: Anschließend sollte der weitere Inhalt der beiliegenden CD nach /opt/flys andre@7449: kopiert werden und dem Benutzer flys zugägnlich gemacht werden. andre@7449: andre@7449: Datenbank initalisieren andre@7449: ----------------------- andre@7449: andre@7449: ``Datenbank erstellen`` andre@7449: ~~~~~~~~~~~~~~~~~~~~~~~ andre@7449: andre@7449: Das erstellen der Datenbank sollte vom zuständigen DB-Admin bereits durchgeführt worden andre@7449: sein. Wichtig ist insbesondere das der Nutzer zugriff auf die Spatial tabellen besitzt. andre@7449: Im folgenden ein Beispiel: andre@7449: andre@7449: .. code:: sql andre@7449: andre@7449: --CREATE TABLESPACE for user andre@7449: CREATE TABLESPACE "flys3" DATAFILE andre@7449: '/u01/app/oracle/oradata/XE/flys3.dbf' SIZE 500M AUTOEXTEND ON NEXT andre@7449: 100M MAXSIZE 1G LOGGING ONLINE PERMANENT BLOCKSIZE 8192 EXTENT andre@7449: MANAGEMENT LOCAL AUTOALLOCATE DEFAULT NOCOMPRESS SEGMENT SPACE andre@7449: MANAGEMENT AUTO; andre@7449: --CREATE USER andre@7449: CREATE USER flys3 IDENTIFIED BY flys3; andre@7449: -- USER SQL andre@7449: ALTER USER flys3 DEFAULT TABLESPACE "flys3" TEMPORARY TABLESPACE "TEMP" andre@7449: ACCOUNT UNLOCK ; andre@7449: -- QUOTA for user on TABLESPACE andre@7449: ALTER USER flys3 QUOTA UNLIMITED ON "flys3"; andre@7449: GRANT ALL on "MDSYS"."ALL_SDO_GEOM_METADATA" to flys3 ; andre@7449: GRANT CREATE SESSION TO flys3 ; andre@7449: GRANT CREATE VIEW TO flys3; andre@7449: GRANT CONNECT, RESOURCE TO flys3; andre@7449: andre@7449: andre@7449: ``Schema importieren`` andre@7449: andre@7449: Abweichend von der hier beschriebenen Vorgehensweise kann natürlich ein andre@7449: alternativer client verwendet werden. Wichtig ist das die folgenden andre@7449: SQL scripte in dieser Reihenfolge und in einer UTF-8 Umgebung andre@7449: ausgeführt werden: andre@7449: andre@7449: #. oracle.sql andre@7449: #. oracle-minfo.sql andre@7449: #. oracle-spatial.sql andre@7449: #. oracle-spatial_idx.sql andre@7449: andre@7449: andre@7449: Mit einem vorhandenden sqlplus unter /opt/instantclient_11_2:: andre@7449: andre@7449: NLS_LANG=.AL32UTF8 rlwrap /opt/instantclient_11_2/sqlplus /@:/ andre@7449: @oracle.sql andre@7449: @oracle-minfo.sql andre@7449: @oracle-spatial.sql andre@7449: @oracle-spatial_idx.sql andre@7449: andre@7449: ``Schema löschen`` andre@7449: ~~~~~~~~~~~~~~~~~~ andre@7449: andre@7449: Zum löschen der im Schritt Schema importieren importierten Schemata andre@7449: liegen entsprechende drop Skripte bereit. Diese sollten bei Bedarf in andre@7449: folgender Reihenfolge ausgeführt werden:: andre@7449: andre@7449: #. oracle-drop-spatial.sql andre@7449: #. oracle-drop-minfo.sql andre@7449: #. oracle-drop.sql andre@7449: andre@7449: D4E-River Server Installieren andre@7449: ----------------------------- andre@7449: andre@7449: Neue Versionen des gesamten FLYS Pakets werden üblicherweise als andre@7449: GZIP komprimierter Tarball mit dem Namenschema flys-VERSION.tar.gz andre@7449: zur verfügung gestellt. Als Beispiel wird hier die Version 3.0.16 andre@7449: angenommen. andre@7449: andre@7449: ``Server entpacken`` andre@7449: ~~~~~~~~~~~~~~~~~~~~ andre@7449: andre@7449: #. Als Nutzer flys einloggen:: andre@7449: andre@7449: su - flys andre@7449: andre@7449: #. Tarball entpacken:: andre@7449: andre@7449: cd /opt/flys andre@7449: tar -xf flys-3.0.16.tar.gz andre@7449: andre@7449: #. Symlink für die aktuelle Version anlegen:: andre@7449: andre@7449: rm -f flys-current andre@7449: ln -s flys-3.0.16 flys-current andre@7449: andre@7449: ``Server konfigurieren`` andre@7449: ~~~~~~~~~~~~~~~~~~~~~~~~ andre@7449: #. Datenbank verbindung: andre@7449: andre@7449: Die externen Datenbanken von Dive4Element River werden in den Dateien andre@7449: server/conf/backend-db.xml und server/conf/seddb-db.xml konfiguriert. andre@7449: andre@7449: In diesen sind Nutzername, Passwort und URL entsprechend den passenden andre@7449: Werten anzupassen. andre@7449: andre@7449: Die URL ist dabei nach folgendem Schema aufgebaut: andre@7449: jdbc:oracle:thin:@//:/ andre@7449: andre@7449: Mithilfe des Eintrags:: andre@7449: andre@7449: ALTER SESSION SET CURRENT_SCHEMA=$SCHEMA; andre@7449: andre@7449: kann man den initalen Schema Präfix der Datenbank ändern. andre@7449: Wobei $SCHEMA ein Platzhalterfür das zu verwendende Schema ist. andre@7449: z.B.:: andre@7449: andre@7449: ALTER SESSION SET CURRENT_SCHEMA=SEDDB; andre@7449: andre@7449: #. URL für Kartendienste andre@7449: Sollte der Host Name des neuen Servers nicht flys3-devel.bafg.de lauten muss man andre@7449: noch die entsprechenden Verweise auf den Kartendienst anpassen:: andre@7449: andre@7449: cd /opt/flys/flys-3.0.16/server/conf andre@7449: sed -i @flys3-devel.bafg.de@@ rivermap.xml floodmap.xml andre@7449: andre@7449: #. URL für das Wiki: andre@7449: Die URL unter welcher das flys wiki erwartet wird ist in server/conf/conf.xml andre@7449: im Eintrag konfiguriert. Dies muss auch ggf. auf den neuen Host Namen andre@7449: angepasst werden. Standard ist: https://flys3-devel.bafg.de/wiki andre@7449: andre@7449: #. Gewässerdaten: andre@7449: Zur Berechnung von Überschwemmungsflächen werden Digitale Geländemodelle benötigt. andre@7449: andre@7449: Der Ort an dem diese Daten liegen ist in der Datei server/conf/conf.xml als andre@7449: zu konfigurieren. z.B.:: andre@7449: andre@7449: /home/teichmann/gewaesser-final/ andre@7449: andre@7449: ``Server starten`` andre@7449: ~~~~~~~~~~~~~~~~~~ andre@7449: andre@7449: #. Zurück auf root wechseln:: andre@7449: andre@7449: exit andre@7449: andre@7449: #. Startscript hinterlegen:: andre@7449: andre@7449: cp /opt/flys/d4e-river /etc/init.d andre@7449: cd /etc/init.d/rc3.d andre@7449: ln -s S10d4e-river ../d4e-river andre@7449: ln -s K10d4e-river ../d4e-river andre@7449: cd /etc/init.d/rc5.d andre@7449: ln -s S10d4e-river ../d4e-river andre@7449: ln -s K10d4e-river ../d4e-river andre@7449: andre@7449: #. Server starten:: andre@7449: andre@7449: /etc/init.d/d4e-river start andre@7449: andre@7449: Nun kann sich mit einem Blick in /var/log/server-3.0.16.log andre@7449: vergewissern das der Server korrekt gestartet wurde. In diesem andre@7449: Fall wäre die Letze Zeile des logs in der Art:: andre@7449: andre@7449: INFO Standalone - Starting org.dive4elements.artifactdatabase.rest.Standalone HTTP server on localhost:18989 andre@7449: andre@7449: Kartendienste einrichten andre@7449: ------------------------ andre@7449: andre@7449: Nun können die Kartendienste (river-wms, user-wms) von flys eingerichtet andre@7449: werden (als root):: andre@7449: andre@7449: cp /opt/flys/*-wms /srv/www/cgi-bin/ andre@7449: andre@7449: Apache konfigurieren andre@7449: -------------------- andre@7449: andre@7449: ** TODO ** andre@7449: andre@7449: ``HTTPS einrichten`` andre@7449: ~~~~~~~~~~~~~~~~~~~~ andre@7449: andre@7449: ** TODO ** andre@7449: andre@7449: Web Client Installieren andre@7449: ----------------------- andre@7449: andre@7449: Der Web client läuft als Tomcat Webapp. Damit tomcat diesen startet andre@7449: muss der client nur an die Richtige stelle kopiert werden.:: andre@7449: andre@7449: /etc/init.d/tomcat6 stop andre@7449: cp /opt/flys/flys-3.0.16/client/flys-3.0.16.war /usr/share/tomcat6/webapps andre@7449: /etc/init.d/tomcat6 start andre@7449: andre@7449: Das neustarten des Tomcat Servers ist hierbei optional. Kann aber dazu dienen andre@7449: die stabilität des Tomcat Servers zu verbessern. andre@7449: andre@7449: Wiki Installieren andre@7449: ----------------- andre@7449: andre@7449: ** TODO ** andre@7449: andre@7449: ``SAML`` andre@7449: ~~~~~~~~ andre@7449: andre@7449: ** TODO ** andre@7449: