aheinecke@7472: .. header:: aheinecke@7472: aheinecke@7472: ###Title### - ###Section### aheinecke@7472: aheinecke@7472: .. footer:: aheinecke@7472: aheinecke@7472: Seite ###Page### / ###Total### aheinecke@7472: andre@7449: ================= andre@7449: FLYS Installation andre@7449: ================= andre@7449: andre@7449: Übersicht andre@7449: --------- andre@7449: andre@7449: Dieses Dokument beschreibt die Installation des Fachdienstes FLYS. andre@7449: aheinecke@7453: Abgehandelt werden die Installation der Server-Anwendung (D4E-River), aheinecke@7453: der Web-Anwendung, die Einrichtung der Datenbanken sowie die Einrichtung aheinecke@7453: des Moin-Wikis. andre@7449: andre@7449: Als Basis dient ein SUSE Linux Enterprise Server in Version 11.2. andre@7449: aheinecke@7454: .. contents:: Inhalt aheinecke@7454: aheinecke@7454: .. raw:: pdf aheinecke@7454: aheinecke@7454: PageBreak aheinecke@7454: 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@7472: Je nach OpenSUSE Version müssen noch weitere Repositories hinzugefügt werden. aheinecke@7472: Unter ``10.140.90.89/wiki`` können durch eine Suche nach ``repos`` weitere aheinecke@7472: repositories hinzugefügt werden. aheinecke@7472: aheinecke@7472: #. Einloggen als root nutzer:: aheinecke@7472: aheinecke@7472: su aheinecke@7472: aheinecke@7453: #. Hinzufügen des OBS Repositorys 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: aheinecke@7472: #. Zusätzlich muss noch das SLES 11 SDK repo hinzgefügt werden:: aheinecke@7472: aheinecke@7472: zypper ar -t YUM http://voss-update/repo/\$RCE/ aheinecke@7472: SLE11-SDK-Pool/sle-11-x86_64 SLE11-SDK-POOL aheinecke@7472: aheinecke@7453: #. 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@7472: proj xerces-c FastCGI php MyODBC-unixODBC postgresql-libs gd aheinecke@7472: aheinecke@7472: Sollte es Probleme mit der Abhängikeitsauflösung von xerces-c geben kann aheinecke@7472: darauf verzichtet werden xerces-c 2.x zu installieren. Dies sollte aheinecke@7472: als Optionsfrage zur Auswahl stehen. andre@7449: andre@7449: #. Anlegen der Logger Gruppe:: andre@7449: andre@7449: gropadd flys_log andre@7449: aheinecke@7472: #. Anlegen des Flys Nutzers (sofern noch nicht vorhanden):: andre@7449: aheinecke@7452: useradd -G users,flys_log,www -m flys andre@7449: aheinecke@7472: #. Flys Nutzer der Gruppe flys_log hinzufügen (wenn nutzer bereits vorhanden):: aheinecke@7472: aheinecke@7472: usermod -A flys_log flys aheinecke@7472: aheinecke@7453: #. 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: aheinecke@7453: #. 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@7453: Der Key-Fingerprint des Intevations Repositorys 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@7453: kopiert und dem Benutzer flys zugänglich gemacht werden. aheinecke@7472: (z.B.: cp -r /media/UDF\ Volume/* /opt/flys) aheinecke@7452: aheinecke@7454: .. raw:: pdf aheinecke@7454: aheinecke@7454: PageBreak aheinecke@7454: aheinecke@7453: Oracle Client installieren aheinecke@7452: -------------------------- aheinecke@7452: aheinecke@7472: #. Instantclient entpacken (als root):: 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: aheinecke@7453: Datenbank initialisieren aheinecke@7454: ------------------------ andre@7449: andre@7449: ``Datenbank erstellen`` andre@7449: ~~~~~~~~~~~~~~~~~~~~~~~ andre@7449: aheinecke@7453: Das Erstellen der Datenbank sollte vom zuständigen DB-Admin bereits durchgeführt worden aheinecke@7453: sein. Wichtig ist insbesondere, dass 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 aheinecke@7472: '/u01/app/oracle/oradata/XE/flys3.dbf' SIZE 1G AUTOEXTEND ON NEXT aheinecke@7472: 100M MAXSIZE 10G LOGGING ONLINE PERMANENT BLOCKSIZE 16384 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; aheinecke@7472: GRANT CONNECT TO flys3; aheinecke@7472: aheinecke@7472: Dieses Beispiel soll nur zur groben Orientieren dienen welche Rechte FLYS aheinecke@7472: benötigt. Speziellere Konfiguration ist mit dem zuständigen DB-Admin zu aheinecke@7472: klären. andre@7449: andre@7449: aheinecke@7472: ``Tabellen anlegen`` aheinecke@7472: ~~~~~~~~~~~~~~~~~~~~ andre@7449: andre@7449: Abweichend von der hier beschriebenen Vorgehensweise kann natürlich ein aheinecke@7453: alternativer Client verwendet werden. Die SQL-Skripte liegen im Unterordner aheinecke@7453: DB-Schema. Wichtig ist, dass die folgenden aheinecke@7453: SQL-Skripte 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: aheinecke@7472: Wechseln in den db-schema Ordner (als flys nutzer):: andre@7449: aheinecke@7472: cd /opt/flys/db-schema andre@7449: aheinecke@7472: SQLPlus aufrufen (mit passendem Encoding zu den scripten):: aheinecke@7472: aheinecke@7472: NLS_LANG=.AL32UTF8 /opt/instantclient_11_2/sqlplus /@:/ aheinecke@7472: aheinecke@7472: Dann im sqlplus client:: aheinecke@7472: 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: aheinecke@7453: 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: aheinecke@7472: @oracle-drop-spatial.sql aheinecke@7472: @oracle-drop-minfo.sql aheinecke@7472: @oracle-drop.sql aheinecke@7472: aheinecke@7472: .. raw:: pdf aheinecke@7472: aheinecke@7472: PageBreak aheinecke@7472: andre@7449: andre@7449: D4E-River Server Installieren andre@7449: ----------------------------- andre@7449: andre@7449: Neue Versionen des gesamten FLYS Pakets werden üblicherweise als aheinecke@7453: GZIP komprimierter Tarball mit dem Namensschema flys-VERSION.tar.gz aheinecke@7453: zur Verfügung gestellt. Als Beispiel wird hier die Version 3.0.16 andre@7449: angenommen. andre@7449: aheinecke@7472: ``Passende Java Version installieren`` aheinecke@7472: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ aheinecke@7472: aheinecke@7472: D4E-River benötigt ein Sun oder OpenJDK Java. Dieses muss extra aheinecke@7472: installiert werden:: aheinecke@7472: aheinecke@7472: cd /opt/flys aheinecke@7472: sh ./jdk-6u26-linux-x64-rpm.bin aheinecke@7472: update-alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_26/bin/java 5 aheinecke@7472: update-alternatives --install /etc/alternatives/jre jre /usr/java/jdk1.6.0_26/jre 5 aheinecke@7472: update-alternatives --config java aheinecke@7472: aheinecke@7472: In dem folgenden Menü sollte als option die Java Version auswählen, welche unter aheinecke@7472: /usr/java liegt. aheinecke@7472: 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: ~~~~~~~~~~~~~~~~~~~~~~~~ andre@7449: aheinecke@7472: Die externen Datenbanken von Dive4Element River werden in den aheinecke@7472: folgenden Dateien konfiguriert.:: andre@7449: aheinecke@7472: /opt/flys/flys-3.0.16/server/conf/backend-db.xml aheinecke@7472: /opt/flys/flys-3.0.16/server/conf/seddb-db.xml andre@7449: aheinecke@7472: In diesen sind Nutzername, Passwort und URL entsprechend den passenden aheinecke@7472: Werten anzupassen. andre@7449: aheinecke@7472: Die URL ist dabei nach folgendem Schema aufgebaut: aheinecke@7472: jdbc:oracle:thin:@//:/ aheinecke@7472: aheinecke@7472: Mithilfe des Eintrags:: aheinecke@7472: aheinecke@7472: ALTER SESSION SET CURRENT_SCHEMA=$SCHEMA; aheinecke@7472: aheinecke@7472: kann man den initalen Schema Präfix der Datenbank ändern. aheinecke@7472: Wobei $SCHEMA ein Platzhalter für das zu verwendende Schema ist. aheinecke@7472: z.B.:: aheinecke@7472: aheinecke@7472: ALTER SESSION SET CURRENT_SCHEMA=SEDDB; andre@7449: andre@7449: #. URL für Kartendienste aheinecke@7453: 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: aheinecke@7453: Die URL unter welcher das Flys-Wiki erwartet wird ist in server/conf/conf.xml aheinecke@7453: 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: aheinecke@7472: #. Gewässerdaten auf das System kopieren: aheinecke@7472: Die Gewässerdaten müssen auf das System übertragen werden und aheinecke@7472: andre@7449: #. Gewässerdaten: aheinecke@7453: 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: aheinecke@7472: /opt/gewaesser andre@7449: andre@7449: ``Server starten`` andre@7449: ~~~~~~~~~~~~~~~~~~ andre@7449: andre@7449: #. Zurück auf root wechseln:: andre@7449: andre@7449: exit andre@7449: aheinecke@7453: #. Startskript 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: aheinecke@7472: Nun kann man sich mit einem Blick in /var/log/flys/server-3.0.16.log aheinecke@7453: vergewissern, dass der Server korrekt gestartet wurde. In diesem aheinecke@7453: 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: aheinecke@7454: .. raw:: pdf aheinecke@7454: aheinecke@7454: PageBreak aheinecke@7454: andre@7449: Kartendienste einrichten andre@7449: ------------------------ andre@7449: aheinecke@7452: In SuSE Linux Enterprise ist kein Paket für den benötigten Mapserver aheinecke@7472: vorhanden. Dieses muss manuell installiert werden (root):: 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: aheinecke@7453: 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@7472: aheinecke@7472: In der Konfigurationsdatei ``/etc/apache2/vhosts.d/flys.conf`` muss ggf. aheinecke@7472: der redirect auf einen anderen Host geändert werden. aheinecke@7472: aheinecke@7472: Apache neu starten:: aheinecke@7472: aheinecke@7472: /etc/init.d/apache2 restart 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@7453: zu entnehmen und soll nicht Teil dieser Anleitung sein. Allerdings ist zu bemerken, aheinecke@7453: dass darauf geachtet werden sollte, es weiterhin zu ermöglichen Kartendienste über aheinecke@7453: 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: aheinecke@7472: .. raw:: pdf aheinecke@7472: aheinecke@7472: PageBreak andre@7449: andre@7449: Web Client Installieren andre@7449: ----------------------- andre@7449: aheinecke@7453: Der Web Client läuft als Tomcat Webapp. Damit Tomcat diesen startet aheinecke@7472: muss der Client nur an die richtige Stelle kopiert werden. (als root):: 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: aheinecke@7453: Das Neustarten des Tomcat Servers ist hierbei optional, kann aber dazu dienen aheinecke@7452: die Stabilität des Tomcat Servers zu verbessern. andre@7449: aheinecke@7472: Ggf. ist noch der Eintrag print-url in der Datei aheinecke@7472: ``/usr/share/tomcat/webapps/flys-3.0.16/WEB-INF/web.xml`` anzupassen aheinecke@7472: insbesondere wenn man zwischen https und http wechselt. Default ist https. aheinecke@7472: aheinecke@7472: aheinecke@7472: In der Datei ``/var/log/tomcat6/catalina.out`` kann man nachsehen ob aheinecke@7472: der Start erfolgreich war. Gab es Probelme mit Java muss man aheinecke@7472: ggf. die verwendete Java Version in /etc/tomcat6/tomcat6.conf aheinecke@7472: anpassen indem man den Eintrag JAVA_HOME ändert:: aheinecke@7472: aheinecke@7472: JAVA_HOME="/usr/java/jdk1.6.0_26/jre" aheinecke@7454: aheinecke@7453: Wiki installieren andre@7449: ----------------- andre@7449: aheinecke@7453: Das Wiki für den Fachdienst Flys ist so konfiguriert, dass 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 aheinecke@7454: exit aheinecke@7454: aheinecke@7454: Rechte für wwwrun setzen:: aheinecke@7454: aheinecke@7454: cd /home/flys/wiki/moin-2013-02-01/wiki/ aheinecke@7454: chown -R wwwrun data underlay aheinecke@7454: aheinecke@7472: .. raw:: pdf aheinecke@7472: aheinecke@7472: PageBreak aheinecke@7472: aheinecke@7472: aheinecke@7472: FLYS-Importer aheinecke@7472: ------------- aheinecke@7472: aheinecke@7472: Um den Flys Importer nach /opt/flys zu installieren aheinecke@7472: reicht es Diesen zu entpacken (als Nutzer flys).:: aheinecke@7472: aheinecke@7472: cd /opt/flys aheinecke@7472: tar -xf /opt/flys-importer_201310251707.tar.gz aheinecke@7472: aheinecke@7472: Dieser liegt anschließend unter /opt/flys-importer aheinecke@7472: bereit. Die Konfiguration und Verwendung ist der aheinecke@7472: Importer Dokumentation zu entnehmen. Diese liegt aheinecke@7472: nun unter:: aheinecke@7472: aheinecke@7472: /opt/flys/flys-importer/importer-manual.pdf aheinecke@7472: aheinecke@7472: AFT-DIPS aheinecke@7472: -------- aheinecke@7472: aheinecke@7472: AFT Dips nach /opt/flys installieren:: aheinecke@7472: aheinecke@7472: cd /opt/flys/ aheinecke@7472: tar -xf aft-dips-etl.tar.gz aheinecke@7472: aheinecke@7472: Ggf. muss nun noch die Konfiguration der Datenbanken angepasst werden. aheinecke@7472: Die zugehörige Konfigurationsdatei ist:: aheinecke@7472: aheinecke@7472: /opt/flys/aft-dips-etl/conf/conf.xml aheinecke@7472: aheinecke@7472: Der Prozess kann nun ausgeführt werden:: aheinecke@7472: aheinecke@7472: /opt/flys/aft-dips-etl/bin/run.sh aheinecke@7472: aheinecke@7472: Logs des AFT/DIPS synchronisationsprozesses werden unter aheinecke@7472: ``/opt/flys/aft-dips-etl/logs`` abgelegt.