dustin@880: # Installation Lada-Client dustin@880: dustin@880: Für allgemeine Informationen schauen Sie in die README Datei. dustin@880: dustin@880: ## Installation dustin@880: dustin@880: Für den Betrieb des Lada-Clients muss dieser innerhalb einer Webserver-Umgebung dustin@880: installiert werden. Die folgenden Hinweise geben eine Kurze Anleitung zur dustin@880: Installation eines Apache-Webserver. dustin@880: dustin@880: Hinweis: Für den Betrieb einer vollständigen Installation ist neben dem dustin@880: Klienten auch die Installation eines Servers und entsprechender Datenbank dustin@880: notwendig. Für die Installation des Servers folgen Sie bitte den Hinweisen in dustin@897: der README Datei des Server-Pakets. dustin@897: Weitere Information finden Sie auf der Projektwebseite: dustin@897: http://wald.intevation.org/projects/lada dustin@880: dustin@880: Die folgenden Hinweise beziehen sich auf die Installation und Einrichtung auf dustin@880: Basis eines Oracle-RedHat Linux Systems. dustin@880: tom@948: Der Lada-Client ist eine Anwendung die auf dem Framework ExtJs 4.2.1 tom@948: (GPL-Version) basiert, welches mit `install-dependencies.sh` heruntergeladen tom@948: und installiert wird. dustin@896: dustin@896: dustin@886: ### Kompilieren und Minifizieren der Anwendung dustin@880: dustin@896: Zum Kompilieren der Anwendung kommt das Tool Sencha Cmd 4.0.x zum Einsatz. dustin@880: Mit Hilfe dieses Tools kann der Quellcode in eine einzelne Datei zusammengefasst dustin@897: und minifiziert werden. Dies beschleunigt das Laden der Anwendung im Browser dustin@897: erheblich dustin@880: lechner@1273: Sencha bietet Sencha Cmd zum [Download](https://www.sencha.com/products/extjs/cmd-download/) dustin@880: an. Beachten Sie: Sencha Cmd ist keine freie Software. dustin@880: dustin@880: Die Fa. Sencha beschreibt die Installation von Sencha Cmd in der dustin@880: [Dokumentation von ExtJs](http://docs.sencha.com/extjs/4.2.1/#!/guide/command) dustin@880: dustin@886: Zur Installation von Sencha Cmd werden Ruby und Java benötigt. dustin@886: dustin@886: Bevor Sie die Anwendung kompilieren können, müssen Sie die im Abschnitt tom@948: *Lizenzen und Bibliotheken* genannten Bibliotheken mit tom@948: `install-dependencies.sh` zum Projekt hinzufügen. dustin@880: dustin@947: Um die Anwendung zu erzeugen und alle notwendigen Bibliotheken an den richtigen dustin@947: Platz zu legen, passen Sie den Pfad zu SenchaCMD in der Datei `build.sh` an und dustin@947: führen Sie das Shell-Skript aus. dustin@947: Das Verzeichnis `lada-client-VERSIONSNUMMER` enthält dann eine Datei `index.html` dustin@947: und eine Datei `lada.js`. Die Datei `lada.js` ist eine komprimierte Version der dustin@947: Anwendung und enthält alle benötigten Klassen. dustin@880: dustin@886: dustin@880: ### Installation Apache dustin@880: Zunächst wird der Apache Webserver aus dem Repository installiert: dustin@880: dustin@880: ``` dustin@880: yum install httpd mod_ssl dustin@880: service httpd start dustin@880: ``` dustin@880: dustin@880: ### Aktivierung der Apache Module dustin@880: dustin@880: Die Konfiguration, welche Module beim Start des Apache geladen werden, erfolgt dustin@880: in der Datei `/etc/httpd/conf`. Die zu ladende Module sind in dieser Datei mit dustin@880: der Option `LoadModule` angegeben. Folgende Module werden benötigt: dustin@880: tom@953: * headers_module: Setzen der Header nach der Authentifizierung dustin@897: * proxy_module: Reverse Proxy des Apache zum Lada-Server dustin@880: dustin@880: ### Einrichtung der Anwendung dustin@880: dustin@880: Zunächst hinterlegen wir die Anwendung in dem Server. Hierzu verwenden wir die dustin@880: gebaute Version, welche sich im `build` Ordner befindet. dustin@880: dustin@880: ``` dustin@880: cd /var/www/html dustin@880: mkdir lada dustin@947: cp -r lada-client-VERSIONSNUMMER/* lada dustin@880: ``` dustin@880: dustin@880: *Wichtig um SELinux dazu zu überreden das neue Verzeichnis auch zu servieren:* dustin@880: dustin@880: ``` dustin@880: restorecon -Rv /var/www/html/ dustin@880: ``` dustin@880: dustin@880: Die Anwendung sollte nun bereits unter der Adresse `http://localhost/lada` dustin@880: erreichbar sein. dustin@880: dustin@888: Damit die Anwendung vollständig funktioniert, müssen ggfs. noch weitere dustin@884: Bibliotheken hinzugefügt werden. dustin@884: Dies wird im Abschnitt *Lizenzen und Bibliotheken* näher beschrieben dustin@884: dustin@880: ### Konfiguration Proxy Server dustin@880: dustin@880: Damit der Client eine Verbindung zu dem Server aufbauen kann, um von dort dustin@880: Daten laden zu können, ist es notwendig den Server weiter zu konfigurieren. dustin@880: dustin@880: ``` dustin@880: togglesebool httpd_can_network_connect dustin@880: service httpd restart dustin@880: ``` dustin@880: dustin@880: Dies erlaubt dem Apache grundsätzlich sich mit einem anderen Dienst zu verbinden. dustin@942: tom@953: Nun muss noch ein Reverse-Proxy eingerichtet werden. Hierzu kann die Datei tom@953: `custom-vhosts.conf` unter `/etc/httpd/conf.d/lada.conf` abgelegt werden. tom@953: Die URL für den Lada-Server muss darin ggf. angepasst werden. tom@953: Sollte aus dem Lada-Client heraus mittels PrintApp in mapfish-print gedruckt werden, tom@953: so ist auch der zweite (in `custom-vhosts.conf` auskommentierte) Proxy tom@953: notwendig. tom@953: Die RequestHeader-Zeilen sind nur für ein Test-Setup ohne tom@953: Shibboleth-Authentifizierung gedacht und müssen ansonsten entfernt werden. dustin@880: dustin@880: ### Authentifizierung dustin@880: dustin@949: Derzeit wird Authentifizierung durch Shibboleth gewährleistet. Dies wird dustin@949: komplett durch den Webserver erledigt. Dieses muss daher entsprechen dustin@949: konfiguriert werden. Die Anwendung selbst führt keine Authentifizierung mehr dustin@949: durch. dustin@949: Frühere Ansätze zur Authentifizierung nutzten OpenId oder LDAP dustin@884: dustin@884: # Lizenzen und Bibliotheken dustin@884: tom@948: Die Anwendung verwendet mehrere Unterkomponenten, die mit tom@948: `install-dependencies.sh` in `resources/lib` installiert werden. dustin@884: dustin@884: Folgende Bibliotheken werden neben ExtJs verwendet: dustin@884: dustin@884: * Filesaver.js dustin@884: https://github.com/eligrey/FileSaver.js dustin@884: MIT - License dustin@884: * Blob.js dustin@884: https://github.com/eligrey/Blob.js dustin@884: MIT - License dustin@884: * Openlayers 2.13.1 dustin@884: http://www.openlayers.org lechner@1273: https://github.com/openlayers/ol2 dustin@884: 2-Clause BSD-License dustin@886: tom@948: Diese werden in der `Index.html` referenziert. dustin@886: tom@948: In `resources/lib/ext` werden Bibliotheken installiert, die ExtJs tom@948: ergänzen und in der Datei `app.js` aufgeführt werden: dustin@886: dustin@884: * Ext.i18n.Bundle 0.3.3 (referenced as Ext.i18n in app.js) dustin@884: https://github.com/elmasse/Ext.i18n.Bundle/tree/v0.3.3 dustin@884: MIT - License dustin@884: * Ext.ux.upload 1.1.1 dustin@884: https://github.com/ivan-novakov/extjs-upload-widget/tree/1.1.1 dustin@884: 3-Clause BSD-License