Template:Installation de

From MapbenderWiki

Jump to: navigation, search

Read the Installation instructions in English language

Eine der wichtigsten Änderungen in Mapbender Version 2.2 ist die native Unterstützung von PostgreSQL. Die Installationsanleitung für Mapbender 2.1 (die vorhergehende Version) liegt hier.

Contents

Installation auf Deutsch

Update Mapbender

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


Installation Mapbender

  • Beschreibung für die Versionen ab 2.2


Betriebsvoraussetzungen (Deutsch)

Mapbender benötigt folgende Softwarevoraussetzungen:

  • Webserver (Apache, MS IIS)
  • PHP(Skriptsprache) möglichst
    • ab Version ab 5.1.x für pg-prepared Statements
    • PHP 5.2.1 für natives JSON
  • Datenbank (PostgreSQL >7.3 oder MySQL > 4k)

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 - hier befinden sich in SQL-Dateien die Statements, um die Tabellen zu erstellen und zu füllen; enthält auch Übersetzungsdateien.

Internationalisierung

  • Setze USE_I18N auf true in der mapbender.conf.
  • Kompiliere die .po Dateien in .mo Dateien via msgfmt, siehe gettext.

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 /var/www/apache2-default/mapbender_2.4.3/http>
           Options Indexes MultiViews FollowSymLinks
           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

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!)

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. Je nach Wahl der 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)

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

MySQL Einstellungen für PHP

1. Mapbender benötigt Zugriffsrechte auf eine MySQL-Datenbank. PHP enthält diese Erweiterung normalerweise schon (siehe php.ini).

Konfiguration: Erlauben Sie Lesezugriffe auf die Datei ./conf/mapbender.conf.

2. Je nach Version des Betriebssystems fehlt möglicherweise InnoDB in MySQL! Prüfen Sie das deshalb bitte zuerst, falls Sie auf Probleme beim Löschen in der Administrations GUI stoßen.

3. Bearbeiten Sie die Datei ./conf/mapbender.conf. Die URL verweist auf das Loginscript, so dass nach einem Verbindungsabbruch jederzeit darauf zugegriffen werden kann (Timeout, fehlende Zugriffsrechte etc.).

 $login = 'http://SERVERNAME_OR_IP/mapbender/frames/login.php';

4. Wenn Sie lediglich den Login sehen aber nicht auf die Datenbank zugreifen können prüfen Sie ob der Server die in ./conf/mapbender.conf definierte Adresse finden kann.

 $server="localhost"

Das funktioniert nur wenn Mapbender auf dem selben Computer wie MySQL installiert ist. Ist dies nicht der Fall ersetzen Sie localhost durch die IP-Adresse.

Mapbender Datenbank

Mapbender verwendet eine SQL-Datenbank, um seine Administrationsdaten zu verwalten. Für die Installation benötigen Sie Zugriff mit Datenbank Erstellungs-Rechten, für den Betrieb ist schreibenden Zugriff erforderlich. Es wird empfohlen PostgreSQL zu verwenden, da einige Module die Spracherweiterung PostGIS für räumliche Operationen nutzen.

Hinweis:Seit Version 2.2.3 (2006-03-10) kann Mapbender mit ISO-8859-1 oder UTF-8 Zeichensatz verwendet werden. Beachten Sie, dass Sie die entsprechenden Daten laden.

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

PostgreSQL Datenbank

Hinweis: Seit Version 2.2.3 (2006-03-10) unterstützt Mapbender entweder ISO-8859-1 oder UTF-8 Zeichensatz!

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

Anlegen der Datenbank, entweder mit UTF8 Zeichnsatz (empfohlen):

createdb -E UTF8 mapbender

Alternativ mit ISO-8859-1 Zeichnsatz:

createdb -E Latin1 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

psql -f ./pgsql_schema.sql <dbname>

2.a Daten, entweder UTF-8 (emfpohlen)

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

2.b oder ISO-8859-1 (alternativ)

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

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

psql -f pgsql_serial_set_sequences.sql <dbname> 

Für Versionen von PostgreSQL < 8 (z.B. 7.3) muss alternativ die SQL-Datei pgsql_serial_set_sequences_7x.sql verwendet werden.

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 oder MySQL als Administrationsdatenbanken (das Doppelkreuz wird zum auskommentieren verwendet, folgender Eintrag setzt also PostgreSQL aktiv)

 # define("SYS_DBTYPE", "mysql");
 define("SYS_DBTYPE", "pgsql"); 

Angaben für den Datenbankzugriff Wenn Sie MySQL verwenden passen Sie die Daten hier an:

if(SYS_DBTYPE=="mysql")
{
   define("DBSERVER", "<HOST>");
   define("PORT", "3306");
   define("DB", "<database>");
   define("OWNER", "<owner>");
   define("PW", "<password>");

   include_once("../../http/php/database-mysql.php"); 
   # --------------------------------------------
   # database with geos functions
   # --------------------------------------------
   
   define("GEOS_DBSERVER", "<HOST>");
   define("GEOS_PORT", "5432");
   define("GEOS_DB", "<database with geos functions>");
   define("GEOS_OWNER", "<owner>");
   define("GEOS_PW", "<password>");
}

Wenn Sie PostgreSQL verwenden passen Sie die Daten hier an:

else {
   define("DBSERVER", "<HOST>");
   define("PORT", "5432");
   define("DB", "<database>");
   define("OWNER", "<owner>");
   define("PW", "<password>");
   
   include_once("../../http/php/database-pgsql.php"); 
}

Hinweis: Der Mapbender Security Proxy braucht ein anderes Verzeichnis Level im include path. Daher wird in Zukunft der folgende Pfad angegeben:

    include_once("../../http/php/database-pgsql.php");

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;

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 (/var/www/mapbender/log) eine Schreib-Berechtigung für Benutzer/Gruppe "www-data" gesetzt werden.

Prüfung der Konfiguration mit mapbender_setup.php

Das Skript mapbender_setup.php befindet sich im Ordner tools:

/mapbender/http/tools/mapbender_setup.php

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

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


Bei Umstellung von MySQL auf PostgreSQL (ab Mapbender Version 2.2) müssen die Daten übertragen werden.


Darüberhinaus sind die Einstellungen in der pg_hba.conf zu beachten (eventuell muss z.B. ident sameUser auf trust gesetzt werden).

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!

Hinweis

Bitte beachten Sie, dass die Konfigurationsdateien in Version 2.2 zusammengeführt wurden!

Personal tools