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: 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: 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@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@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@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: 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@7452: aheinecke@7453: 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: aheinecke@7453: Datenbank initialisieren andre@7449: ----------------------- 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 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@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: andre@7449: aheinecke@7453: Mit einem vorhandenen 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: 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: 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 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: 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@7453: #. 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 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: 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: 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: 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@7453: Nun kann man sich mit einem Blick in /var/log/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: 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: 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@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@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: 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@7453: 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: 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@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