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: aheinecke@7452: #. Hinzufügen des OBS repositories von Intevation:: aheinecke@7452: aheinecke@7452: zypper addrepo -f \ aheinecke@7452: http://download.opensuse.org/repositories/home:/intevation:/bfg/ aheinecke@7452: SLE_11_SP1/home:intevation:bfg.repo aheinecke@7452: andre@7449: #. Installieren der Benötigten Pakete:: andre@7449: andre@7449: zypper install python-devel python-setuptools libxslt-devel libxml2-devel \ aheinecke@7452: mozilla-nss-devel apache2 tomcat6 java-1_6_0-ibm libgeos0 netcdf \ aheinecke@7452: proj xerces-c FastCGI php MyODBC-unixODBC posgresql-libs 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: aheinecke@7452: useradd -G users,flys_log,www -m flys andre@7449: andre@7449: #. tomcat und apache zur flys_log Gruppe hinzufügen:: andre@7449: aheinecke@7452: usermod -A flys_log tomcat aheinecke@7452: usermod -A flys_log wwwrun andre@7449: andre@7449: #. Logging Verzeichnis anlegen:: andre@7449: andre@7449: mkdir /var/log/flys andre@7449: chgrp flys_log /var/log/flys aheinecke@7452: chmod 775 /var/log/flys andre@7449: andre@7449: #. Betriebsordner Anlegen:: andre@7449: andre@7449: mkdir /opt/flys andre@7449: chown flys /opt/flys andre@7449: aheinecke@7452: #. Firewall ausschalten:: aheinecke@7452: aheinecke@7452: SuSEfirewall2 off aheinecke@7452: aheinecke@7452: Der Key Fingerprint des Intevations Repositories ist: aheinecke@7452: ``18F8 A017 6DFB 7FD1 22BC 20D6 A73E 24AF BC5A 7BAC`` aheinecke@7452: aheinecke@7452: Nun sollte der weitere Inhalt der beiliegenden CD nach /opt/flys aheinecke@7452: kopiert werden und dem Benutzer flys zugänglich gemacht werden. aheinecke@7452: aheinecke@7452: Oracle client installieren aheinecke@7452: -------------------------- aheinecke@7452: aheinecke@7452: #. Instantclient entpacken:: aheinecke@7452: aheinecke@7452: cd /opt aheinecke@7452: tar -xf /opt/flys/instantclient_11_2.tar.gz aheinecke@7452: chown -R flys /opt/instantclient_11_2 aheinecke@7452: aheinecke@7452: #. Library loader konfigurieren:: aheinecke@7452: aheinecke@7452: cp /opt/flys/oci.conf /etc/ld.so.conf.d/oci.conf aheinecke@7452: 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. aheinecke@7452: Im folgenden ein Beispiel:: 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`` aheinecke@7452: ~~~~~~~~~~~~~~~~~~~~~~ andre@7449: andre@7449: Abweichend von der hier beschriebenen Vorgehensweise kann natürlich ein aheinecke@7452: alternativer client verwendet werden. Die SQL skripte liegen im unterordner aheinecke@7452: DB-Schema. 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: aheinecke@7452: ln -s flys-3.0.16 current andre@7449: andre@7449: ``Server konfigurieren`` andre@7449: ~~~~~~~~~~~~~~~~~~~~~~~~ aheinecke@7452: #. 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. aheinecke@7452: Wobei $SCHEMA ein Platzhalter fü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 aheinecke@7452: sed -i s@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 aheinecke@7452: chmod u+x /etc/init.d/d4e-river andre@7449: cd /etc/init.d/rc3.d aheinecke@7452: ln -s ../d4e-river S10d4e-river aheinecke@7452: ln -s ../d4e-river K10d4e-river andre@7449: cd /etc/init.d/rc5.d aheinecke@7452: ln -s ../d4e-river S10d4e-river aheinecke@7452: ln -s ../d4e-river K10d4e-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: aheinecke@7452: In SuSE Linux Enterprise ist kein Paket für den benötigten Mapserver aheinecke@7452: vorhanden. Dieses muss manuell installiert werden:: aheinecke@7452: aheinecke@7452: cd /opt/flys/mapserver-pakete aheinecke@7452: rpm -i --nodeps *.rpm aheinecke@7452: aheinecke@7452: Ob die Installation erfolgreich war kann man durch Abfrage der Mapserver aheinecke@7452: Version testen:: aheinecke@7452: aheinecke@7452: /srv/www/cgi-bin/mapserv -v aheinecke@7452: 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/ aheinecke@7452: chmod a+x /srv/www/cgi-bin/*-wms andre@7449: andre@7449: Apache konfigurieren andre@7449: -------------------- andre@7449: aheinecke@7452: Eine Beispielkonfiguration für den Apache Webserver ist die Datei flys.conf aheinecke@7452: auf der beigelegten CD. Diese kann in das Apache vhosts.d Verzeichnis kopiert aheinecke@7452: werden. In dieser muss ggf. der Redirect für das Geoportal angepasst werden, aheinecke@7452: da in diesem die URL enthalten ist. aheinecke@7452: aheinecke@7452: Apache Konfiguration kopieren:: aheinecke@7452: aheinecke@7452: cp /opt/flys/flys.conf /etc/apache2/vhosts.d aheinecke@7452: /etc/init.d/apache2 reload andre@7449: andre@7449: ``HTTPS einrichten`` andre@7449: ~~~~~~~~~~~~~~~~~~~~ andre@7449: aheinecke@7452: Um verschlüsselten Zugriff über https einzurichten kann man o.g. Konfiguration aheinecke@7452: entsprechend anpassen. Wie dies zu geschehen hat ist der Apache Dokumentation aheinecke@7452: zu entnehmen und soll nicht teil dieser Anleitung sein. Allerdings ist bemerkenswert aheinecke@7452: das darauf geachtet werden sollte es weiterhin zu ermöglichen Kartendienste über aheinecke@7452: http abzurufen. Dies kann man durch einen Bedingten redirect in der Konfiguration aheinecke@7452: des VirtualHosts auf Port 80 erreichen:: aheinecke@7452: aheinecke@7452: RewriteEngine on aheinecke@7452: RewriteCond %{REQUEST_URI} !^/cgi-bin/ aheinecke@7452: RewriteRule (.*) https://flys3-devel.bafg.de/$1 [R=301,L] aheinecke@7452: 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 aheinecke@7452: die Stabilität des Tomcat Servers zu verbessern. andre@7449: andre@7449: Wiki Installieren andre@7449: ----------------- andre@7449: aheinecke@7452: Das Wiki für den Fachdienst Flys ist so konfiguriert das es aheinecke@7452: unter /home/flys/wiki erwartet wird. andre@7449: aheinecke@7452: Wiki entpacken:: andre@7449: aheinecke@7452: su - flys aheinecke@7452: cd /home/flys aheinecke@7452: tar -xf /opt/flys/flys-wiki.tar.gz