Template:Installation de

From MapbenderWiki

(Redirected from Installation de)
Jump to: navigation, search

Read the Installation instructions in English language

Notice

Ab der Version 2.6 steht ein Installationsskript zur Verfügung, mit dem Mapbender in wenige Minuten installiert werden kann.

Das Skript liegt unter:

/mb_installdir/resources/db/install_2.6.(sh,bat) 

(Das Skript liegt für UNIX-artige Systeme und für Windows OS vor. Das Skript erstellt die Mapbender -Datenbank, Kompiliert die Sprachdateien [.mo] und setzt die Dateiberechtigungen. Einige der Angaben dieser Seite müssen weiterhin berücksichtigt werden [Apache, php-Konfiguration, Anpassung der Datei mapbender.conf, Installation von gettext bzw. poedit])


Notice Sie finden eine Installationsskript für debian lenny unter: http://www.geoportal.rlp.de/mediawiki/index.php/Installation_OSS_GIS_Debian


Contents

Update Mapbender

  • Infos, um eine laufende Mapbender Installation zu aktualisieren finden Sie unter Update Mapbender

Betriebsvoraussetzungen (Deutsch)

Mapbender benötigt folgende Softwarevoraussetzungen:

  • Webserver (Apache, MS IIS)
  • PHP(Skriptsprache) möglichst
    • ab Version 5.1.x für pg-prepared Statements
    • PHP 5.2.1 für natives JSON
    • PHP-Erweiterungen, die evtl. als Standard nicht aktiviert sind
      • php-mbstring
      • php-gettext
      • php-gd2
      • php-imagick
      • php5-curl (wenn Sie cURL zur Datenübertragung verwenden möchten beispielsweise bei Proxyverwendung- beachten Sie die Angabe in der mapbender.conf)
  • Datenbank (PostgreSQL >=8.x, PostGIS muss installiert sein)
  • Installation von gettext siehe http://www.mapbender.org/Gettext#Utility_programms
  • take care - Suhosin can effect Mapbender administration and block requests

HINWEIS zu Clientrechner Mehr zu den Systemvoraussetzungen des Clientrechners können Sie unter Client nachlesen.


Download des Pakets

Laden Sie sich das aktuelle Mapbender OSGeo Installationspaket herunter. Näheres zum Download finden Sie unter Download Mapbender (de).


Auspacken des Pakets

Mapbender besteht aus einer Vielzahl von PHP-Dateien in verschiedenen Verzeichnissen, die komprimiert in einem zip-Archiv ausgeliefert werden. Zum Dekomprimieren benötigen Sie ein entsprechendes Programm wie z.B. unzip (Kommandozeile) oder FileZip (Windows).


Verzeichnisse

Mapbender verfügt über folgender Verzeichnisse:

  • conf - Verzeichnis, das die Konfigurationsdatei mapbender.conf enthält
  • http - Anwendungsverzeichnis. In diesem Verzeichnis werden in Unterverzeichnissen die Module nach Typ getrennt abgelegt.
  • log - In diesem Verzeichnis werden auftretende Fehler gespeichert. Das Verzeichnis muß über Schreibrechte verfügen.
  • resources/db - hier befinden sich in SQL-Dateien die Statements, um die Tabellen zu erstellen und zu füllen
  • resources/locale Übersetzungsdateien für verschiedene Sprachen im Mapbender (.po-Dateien)
  • license - Lizenzinformationen
  • owsproxy

Installation Mapbender Datenbank

  • Ab der Version 2.6 kann die Installation der Datenbank über ein Installationsscript erfolgen
    • das Installationsscript liegt im Verzeichnis ../resources/db/
    • für Linux/Unix: install_2.6.sh
      • diese Datei muss ausführbar gemacht werden (z.B. chmod u+x install_2.6.sh)
    • für Windows: install_2.6.bat
    • starten des Installationsscriptes über ./install_2.6.sh (Linux/Unix) bzw. einen Doppelklick auf die install_2.6.bat (Windows)
    • den Installationsanweisungen folgen

Apache Virtuelles Verzeichnis

1. Zuerst wird ein virtuelles Verzeichnis angelegt. Hierzu wird die Datei /etc/apache/httpd.conf editiert (der Ort variiert, bei Apache2 meist /etc/apache2/sites-available/default näheres finden Sie unter Apache):

Alias /mapbender /path/to/mapbender/http/
<Directory /path/to/mapbender/http> Options MultiViews DirectoryIndex index.php Order allow,deny Allow from all </Directory>

Wenn z.B. zu Debugging Zwecken das Verzeichnisdurchsuchen benötigt wird, muß der Zeile Options das Schlüsselwort Indexes hinzugefügt werden.

Für weitere Hinweise (z.B. UTF-8): Apache

Apache Kompression

Für eine optimale Performance ist eine server-seitige Kompression unerläßlich. Hier eine Anweisung für Apache ([Details]). Den Text in Fettschrift an den Directory-Eintrag anhängen

       <Directory /path/to/mapbender/http>
           Options MultiViews
           AllowOverride None
           Order deny,allow
           Deny from all
           Allow from 127.0.0.0/255.0.0.0 ::1/128
   
           # Insert filter
           SetOutputFilter DEFLATE
   
           # Netscape 4.x has some problems...
           BrowserMatch ^Mozilla/4 gzip-only-text/html
   
           # Netscape 4.06-4.08 have some more problems
           BrowserMatch ^Mozilla/4\.0[678] no-gzip
   
           # MSIE masquerades as Netscape, but it is fine
           # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
   
           # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
           # the above regex won't work. You can use the following
           # workaround to get the desired effect:
           BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
   
           # Don't compress images
           SetEnvIfNoCase Request_URI \
           \.(?:gif|jpe?g|png)$ no-gzip dont-vary
   
           # Make sure proxies don't deliver the wrong content
           Header append Vary User-Agent env=!dont-vary
       </Directory>

Die benötigten Module müssen geladen sein (beispielsweise für Ubuntu und Apache2)

a2enmod deflate
a2enmod headers

Unter Windows und Apache2, müssen die Module in der httpd.conf aktiviert werden (Kommentarzeichen entfernen)

LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

Mapbender wird fast doppelt so schnell geladen werden!


PHP Konfiguration

Sie müssen einige Anpassungen in der php.ini-Datei durchführen. Die Änderungen wirken sich erst nach einem Neustart des (Apache-) Webservers aus.

1. Während der Test- und Installationsphase von Mapbender, sollten Fehlermeldungen angezeigt werden. Passen Sie dazu die php.ini folgendermaßen an:

error_reporting  =  E_ALL & ~E_NOTICE
display_errors = On
log_errors = On
error_log = /var/log/php/error.log  #Logdatei muss für den Webserver schreibbar sein!


2. Nach der Testphase sollten Fehlermeldungen nicht mehr ausgegeben werden:

display_errors = Off

3. Folgende Einstellungen in der php.ini sind zu prüfen ( Erläuterung zu allow_url_fopen):

extension_dir = (path to extensions-directory)
allow_url_fopen = On

4. Die Mapbender Authorisierung wird über SESSIONS geregelt.

session.save_handler = files
session.save_path = (Path to SESSIONS-Directory). (Check authorisation!)
session.use_cookies = 1

5. Weitere Einstellungen für das Session-Management sollten angepaßt werden (siehe dazu 'garbage collection' in der php.ini)

6. Für einige Module (z. B. Druck) wird die Erweiterung gd2 benötigt.

extension=php_gd2.dll        (Windows)
extension=gd.so              (Linux)

Diese Lib befindet sich in einem Debian-System in /usr/lib/libgd.so. Wenn nicht, dann mit folgendem Kommando installieren:

# apt-get install libgd2-dev


7. Für die Administrationsdatenbank sowie für einige Mapbender Module wird Zugriff auf eine PostgreSQL-Datenbank benötigt. Hierzu ist zu prüfen, ob die benötigte Erweiterung in der php.ini eingebunden ist.

extension=php_pgsql.dll      (Windows)
extension=pgsql.so           (Linux)

8. ab der Mapbender version 2.5 werden die Erweiterungen gettext und mbstring benötigt

extension=php_gettext.dll     (Windows)
extension=php_mbstring.dll    (Windows)

9. short_open_tag

short_open_tag = OFF

10. Mapbender benötigt simplexml und dom zum XML parsen. Falls nicht installiert, können schwer zu lokalisierende Fehler auftreten, da PHP keine Fehlermeldungen gibt, falls diese Pakete fehlen! Falls eine Linux Distribution benutzt wird, sind diese Pakete schon installiert, aber falls PHP manuell kompiliert wird, müssen diese Module hinzugefügt werden

Darüberhinaus ist zu prüfen, ob die Datenbankeinstellungen in der conf/mapbender.conf korrekt sind.

Mapbender Datenbank

Installskript

Mapbender beinhaltet ein Installskript, welches die Datenbank erzeugt und füllt. Welche Aktionen dabei ausgeführt werden steht weiter unten unter Installation_de#PostgreSQL_Datenbank. Aufruf unter Unix, ggfs. muss das Skript erst ausführbar gemacht werden:

chmod +x install.sh

danach das Skript starten mit

./install.sh # oder bash install.sh

Aufruf unter Windows:

install.bat

oder per Doppelklick im Explorer.

Ab Mapbender 2.7 können Kommandozeilenargumente angegeben werden, der Aufruf ist dann

./install.sh <HOST> <PORT> <DBNAME> <DBTEMPLATE> <DBUSER>

also z.B.

./install.sh localhost 5432 mapbender template0 postgres

um die Datenbank "mapbender" auf dem lokalen Rechner unter Port 5432 als Benutzer postgres anzulegen. Hierbei wird als Template template0 benutzt.

Das Kennwort des Benutzers wird u.U. öfters abgefragt, es wird die Verwendung von .pgpass bzw. pgpass.conf empfohlen, dort kann eine Benutzername/Kennwort-Kombination sicher abgelegt werden.

Ab Version 2.7 existiert ein Update-Skript (update.sh/update.bat), welches die Datenbank aktuell hält, auch dieses akzeptiert Kommandozeilenargumente:

./update.sh <HOST> <PORT> <DBNAME> <DBUSER>

Überblick über die Datenbankstruktur und die versionsabhängigen Änderungen in der Datenbank (Tabellen, Spalten).

PostgreSQL Datenbank

Hinweis: Die folgenden Schritte werden vom Installskript automatisch durchgeführt.

Hinweis: Ab Version 2.6 wird ausschließlich Postgres mit UTF-8 Zeichensatz unterstützt.

Der Benutzer, mit welchem Sie die unten stehenden psql_*.sql Dateien in die Datenbank laden muss Postgres superuser Rechte besitzen!

Anlegen der Datenbank, mit UTF8 Zeichnsatz

createdb -E UTF8 mapbender

Zuerst wir die leere Tabellenstruktur (tables, keys und constraints) angelegt (pgsql_schema.sql). Im zweiten Schritt werden die Daten (pgsql_data.sql) geladen. Im dritten Schritt werden die Abhängigkeiten (pgsql_serial_set_sequences.sql) geladen. Dei Reihenfolge muss unbedingt eingehalten werden. Alle SQL-Anweisungen liegen unterhalb des Verzeichnisses ./mapbender/resources/db/postgresql, die Daten (pgsql_data.sql) finden sich jeweils in den Untrverzeichnissen utf8 oder iso.

1. Schema erzeugen

psql -f ./pgsql_schema.sql <dbname>

2. Daten einspielen

psql -f /utf8/pgsql_data.sql <dbname>

3. Serial Set Sequences (Abhängigkeiten, Bedingungen und Zählerstand der Sequenzen für Serial-Felder, Autowerte)

psql -f pgsql_serial_set_sequences.sql <dbname> 

Ab Mapbender 2.6 wird PostgreSQL in Versionen < 8 nicht mehr unterstützt.

Hinweis
Räumliche Funktionen (Umprojektion des Koordinatensystems (changeEPSG), Flächenberechnung) benötigen die PostgreSQL-Spracherweiterung PostGIS.

Um PostGIS in die PostgreSQL Datenbank zu laden müssen folgende Befehle ausgeführt werden (als Benutzer mit Super-User Rechten (z.B. su postgres)):

Für ältere Mapbender Versionen < 2.5:

createlang plpgsql <dbname>

Alle Versionen:

psql -f <PostGIS-Verzeichnis>lwpostgis.sql -d <dbname>
psql -f <PostGIS-Verzeichnis>spatial_ref_sys.sql -d <dbname>
Backup

restore backup (Beispiel):

pg_restore -Upgsql -dpostgis_template -C mapbender_dev_utf8.dump

Mapbender Konfigurationsdatei mapbender.conf

Die Mapbender Konfigurationsdatei befindet sich im Ordner "conf". Hier finden Sie die Datei mapbender.conf-dist. Benennen Sie diese Datei um in mapbender.conf und passen Sie sie an Ihre Umgebung an. Beim nächsten Update von Mapbender werden Ihre Angaben nicht überschrieben.

Auswahl von PostgreSQL als Administrationsdatenbanken (das Doppelkreuz wird zum auskommentieren verwendet, folgender Eintrag setzt also PostgreSQL aktiv, MySQL wird aktuell nicht mehr unterstützr)

   define("SYS_DBTYPE", "pgsql"); 

Angaben für den Datenbankzugriff

   define("DBSERVER", "<HOST>");
   define("PORT", "<PORT>");
   define("DB", "<database>");
   define("OWNER", "<owner>");
   define("PW", "<password>");
   

Nutzung von Prepared Statements (PHP > 5.1.x, PostgreSQL > 7.4)

define("PREPAREDSTATEMENTS",true); # bzw. ohne Prepared Statements "false"

Encoding der Datenbank - default characterset UTF-8 / ISO-8859-1

define("CHARSET","UTF-8");

Weiterführende Informationen zur Nutzung von UTF-8 als Encoding unter Apache.

Definieren Sie ein Verzeichnis, in dem temporäre Dateien abgelegt werden können. Für dieses Verzeichnis muß der Webserver (und damit Mapbender) über Schreibrechte verfügen!

 define("TMPDIR", "../tmp");

URL für die Anmeldung

 define("LOGIN", "http://localhost/mapbender/frames/login.php");
 define("MAXLOGIN", 3);
 $login = LOGIN;

URL zum owsproxy (keinen abschließenden Slash angeben)

 define("OWSPROXY", "http://<ip or name>/owsproxy");


type of server-connection curl, socket, http

 #define("CONNECTION", "curl");
 define("CONNECTION", "http");
 #define("CONNECTION", "socket");
 define("CONNECTION_PROXY", "<ip>");
 define("CONNECTION_PORT", "<port>");
 define("CONNECTION_USER", "<user>");
 define("CONNECTION_PASSWORD", "<password>");

Sicherheit: Pfad zu den einzelnen Modulen

Mapbender kann prüfen, ob Benutzer nur Module einfügen darf, die bereits zur Verfügung stehen. Nicht-berechtigte (oder ganz neue Module) können dann nicht eingebunden werden!

 define("CHECK", false);

Diese Einstellung ist nur dann von Bedeutung, wenn Mapbender im Mandantenbetrieb läuft, also mehrere unabhängige Administrationsinstanzen benötigt werden.

Mailserver Einstellungen für interne Mapbender Mails

Von nun an kann Mapbender auch mit seinen Nutzern kommunizieren, z.B. kann im Falle eines verlorenen Passworts ein neues per Email zugeschickt werden. Ausserdem werden Nutzer informiert, wenn ein WMS, den sie benutzen, aktualisiert oder verändert wird.

Damit Mapbender Emails senden kann muss der Administrator einen Mailserver (und einen validen Mailaccount auf diesem Server) in mapbender.conf angeben. Bitte beachten Sie: Mapbender bietet nur SMTP mailing!

Weitere Einstellungen können in 'class_administration.php' gemacht werden, zudem lohnt auch ein Blick auf phpmailer (http://sourceforge.net/projects/phpmailer). Zur Zeit wird phpmailer 1.72 verwendet.

 define("MAILHOST", "0.0.0.0");
 define("MAILUSERNAME", "mapbender");
 define("MAILPASSWORD", "mapbender");
 $mailHost = MAILHOST;
 $mailUsername =  MAILUSERNAME;
 $mailPassword =  MAILPASSWORD;

Mapbender error logging

  • Definiere das Mapbender error logging
define("LOG_LEVEL", "error"); //"off","error","warning","notice" or "all"
define("LOG_JS", "on"); // "on", "alert", "console" or "off"

Internationalisierung

  • Setze USE_I18N auf true in der mapbender.conf.
define("USE_I18N", true);
  • Definiere, welche Sprache der Standard sein soll
define("LANGUAGE", "en");   // "en", "de", "bg", "gr", "nl", "it", es" 
  • Kompiliere die .po Dateien in .mo Dateien via msgfmt, siehe gettext (Stellen Sie sicher, dass gettext installiert wurde).
msgfmt resources/locale/bg_BG/LC_MESSAGES/Mapbender.po -o resources/locale/bg_BG/LC_MESSAGES/Mapbender.mo
msgfmt resources/locale/de_DE/LC_MESSAGES/Mapbender.po -o resources/locale/de_DE/LC_MESSAGES/Mapbender.mo
msgfmt resources/locale/fr_FR/LC_MESSAGES/Mapbender.po -o resources/locale/fr_FR/LC_MESSAGES/Mapbender.mo
msgfmt resources/locale/el_GR/LC_MESSAGES/Mapbender.po -o resources/locale/el_GR/LC_MESSAGES/Mapbender.mo
msgfmt resources/locale/it_IT/LC_MESSAGES/Mapbender.po -o resources/locale/it_IT/LC_MESSAGES/Mapbender.mo
msgfmt resources/locale/es_ES/LC_MESSAGES/Mapbender.po -o resources/locale/es_ES/LC_MESSAGES/Mapbender.mo
msgfmt resources/locale/hu_HU/LC_MESSAGES/Mapbender.po -o resources/locale/hu_HU/LC_MESSAGES/Mapbender.mo
msgfmt resources/locale/pt_PT/LC_MESSAGES/Mapbender.po -o resources/locale/pt_PT/LC_MESSAGES/Mapbender.mo


Umprojizierung

Für einige Module z. B. ChangeEpsg, Flächenberechnung ist eine PostgreSQL-Verbindung notwendig, da hier auf PostGIS-Funktionen zugegriffen wird. Diese Funktionalität steht derzeit bei Verwendung von MySQL als Administrations-Datenbank nicht zur Verfügung!

Berechtigung für das log-Verzeichnis ändern (ab Version 2.4.4)

Ab der Version 2.4.4 muss für das log-Verzeichnis ($mapbenderpath/mapbender/log) eine Schreib-Berechtigung für den Apache Nutzer (debian: "www-data", suse: "wwwrun") gesetzt werden. In das Verzeichnis $mapbenderpath/mapbender/http/tmp muss ebenfalls durch den Apache Nutzer geschrieben werden dürfen.

Prüfung der Konfiguration mit mapbender_setup.php

Das Skript mapbender_setup.php befindet sich im Verzeichnis tools:

/mapbender/tools/mapbender_setup.php

Um das Skipt aufrufen zu können, müssen Sie es in das Verzeichnis mapbender/http/tools/mapbender_setup.php verschieben, da es unter /mapbender/tools/mapbender_setup.php nicht aufrufbar ist.

Hinweis

Beachten Sie, dass das Tools-Verzeichnis aus Sicherheitsgründen nicht mehr dauerhaft durch externe Benutzer aufrufbar sein sollte, da Sie über die mapbender_setup.php interne Informationen ausgeben (PHP-Version, Datenbankname, Datenbankbenutzer ...). Schützen Sie das Verzeichnis über htaccess oder belassen Sie es nur kurzzeitig zu Testzwecken im http-Verzeichnis.

Aufruf mapbender_setup.php

http://localhost/mapbender/tools/mapbender_setup.php

mapbender_setup.php prüft die Konfiguration der mapbender.conf und einige Systemkomponenten.


Nach der Installation - erster Login

Der erste Login nach der Installation erfolgt mit dem User root, dessen Passwort root lautet. Sie können / sollten das Passwort nach der Installation umgehend ändern, um unbefugten Zugriff auf Ihre Mapbender-Installation zu verhindern.

Lesen Sie mehr über den Benutzer root!

Views
Personal tools