Mapbender.conf
From MapbenderWiki
This is the detailed explanation of the Mapbender core configuration file.
Notice Please note that this page always references the most current version. For older versions please go to the corresponding version documentation.
Zentrale Konfiguration
Die Datei wird in der Installations-Distribution als /conf/mapbender.conf-dist ausgeliefert. Das Installationsskript legt darauf basierend eine neue Datei mapbender.conf mit allen abgefragten Parametern an. Beachten Sie, dass Sie bei der Aktualisierung eine Sicherung ihrer mapbender.conf Datei anlegen sollten.
Beispiel
Datei mapbender.conf-dist der aktuellen Mapbender-Version:
Datenbank
Für den Betrieb der Software Mapbender wird die Datenbank PostgreSQL in Version 8 oder größer benötigt.
Hinweis: Bitte beachten Sie, dass die meisten Probleme bei der ersten Inbetriebnahme von Mapbender auf eine fehlerhafte Konfiguration des PostreSQL-Zugangs zurückzuführen sind. Überprüfen Sie die Zugnagsberechtigungen des Datenbankbenutzers.
define("DBSERVER", "<server address>"); //default "localhost"
define("PORT", "<port number>"); //default "5432"
define("DB", "<database name>");
define("OWNER", "<user>");
define("PW", "<password>");
Ersetzen sie die Werte in spitzen Klammern mit den Werten für Ihren Datenbankserver und Benutzer.
DBSERVER
Name oder IP-Adresse des Datenbank-Servers. Wenn Mapbender auf dem gleichen Rechner betrieben wird wie die Datenbank kann <localhost> genutzt werden. Beachten Sie die Berechtigung des Datenbank-Benutzers.
PORT
Der Standard-Port für den PostgreSQL-Datenbank-Dienst ist 5432. Wird ein anderer Port verwendet muss dieser hier angegeben werden.
DB
Name der Datenbank in der die Administration von Mapbender gespeichert wird. Die Datenbank wird durch das Installations-Skript angelegt und befüllt. Die Resourcen liegen im Verzeichnis "/recources/db/postgresql/".
OWNER und PW
Im Feld <OWNER> wird der Benutzername und im Feld <PW> das Passwort eingetragen, mit dem der Mapbender-Prozess sich an der Mapbender-Datenbank anmeldet und authentifiziert. Dieser Benutzer muss in der PostgreSQL-Datenbank eingerichtet werden und Lese- und Schreibrechte für die Mapbender Datenbank haben.
Hinweis: Der Installations-Benutzer muss die Rolle <SUPERUSER> haben.
Encoding
# --------------------------------------------
# encoding - default characterset UTF-8 / ISO-8859-1
# --------------------------------------------
define("CHARSET","UTF-8");
Mapbender sollte immer mit dem Zeichensatz UTF-8 (UNICODE) enkodiert werden. Verwenden Sie ISO-8859-1 (LATIN1) nur in Ausnahmefällen und wenn Sie sich sicher sind was Sie tun. Damit die Inhalte der Datenbank später im Browser vernünftig dargestellt werden, wird hier eingetragen, mit welchem Zeichensatz die Datenbank erstellt wurde und die Daten vorhält. Diese Einstellungen korrespondiert mit den SQL-Dateien, die Sie zum Anlegen der Datenbank verwenden!
Nicht nur das Datenbank-Encoding sondern auch das Client-Encoding der PostgreSQL-Datenbank muss dem eingestellten Wert entsprechen. Wenn die Zeile "#client_encoding =" in der postgresql.conf auskommentiert bleibt, dann ist das Client-Encoding gleich dem Datenbank-Encoding. Wird hier jedoch ein abweichender Wert eingetragen, werden Umlaute im Mapbender falsch dargestellt.
PHP Fehlermeldungen
# --------------------------------------------
# error_reporting
# --------------------------------------------
//ini_set('error_reporting', 'E_ALL & ~ E_NOTICE');
Die Weitergabe von Fehlermeldungen (error reporting) wird in der zentralen Konfiguration von PHP (php.ini>/tt>) eingestellt. Über den Schalter <tt>ini_set können unabhängig von den globalen PHP-Einstellungen für Mapbender error reporting eingeschaltet werden. Dies ist zum Beispiel dann sinnvoll, wenn man selbst Module entwickelt oder speziellen Fehlern auf die Schliche kommen möchte (sprich für Debuggingzwecke). Für den normalen Betrieb sollte dies auskommentiert bleiben.
Überprüfen Sie auch die globalen PHP-Einstellungen in der Datei php.ini. Diese Datei liegt je nach Distribution und Betriebssystem an unterschiedlichen Stellen; Unter Linux meist in /etc/php*).
Ordner für temporäre Dateien
# --------------------------------------------
# directory for temporary files
# --------------------------------------------
define("TMPDIR", "../tmp");
Für einige Funktionen muss Mapbender temporäre Dateien ablegen. Dieser Eintrag definiert den Pfad zu dem Ordner. Der Webserver muss für dieses Verzeichnis Schreibrechte haben. Die Angabe erfolgt relativ zum Verzeichnis der PHP-Skripte.
Login-Seite
# --------------------------------------------
# URL to login
# --------------------------------------------
define("LOGIN", "http://localhost/mapbender/frames/login.php");
define("MAXLOGIN", 3);
$login = LOGIN;
Ersetzen Sie den Pfad "http://localhost/mapbender/frames/login.php" durch die Webseite ihres Servers. Diese Seite wir daufgerufen, wenn Mapbender auf die Startseite zurückgesetzt wird (z.B. wenn der Benutzer versucht eine geschützte Seite aufzurufen jedoch die Session abgelaufen ist).
LOGIN
URL für die Anmeldeseite dieser Mapbender-Installation. "localhost" sollte durch den Servernamen ersetzt werden, damit die Adresse auch aus Sicht eines Clients gültig ist.
MAXLOGIN
Benutzerzugänge werden gesperrt, wenn das Passwort öfter direkt hintereinander falsch eingegeben wurde, als hier definiert ist. Nur der Administrator (OWNER) des Benutzers kann diesen Wert zurücksetzen. Siehe auch Benutzer anlegen und editieren (mod_editFilteredUser.php).
Hinweis: Datenbank entsperren: Feld "mb_user_login_count" in der Tabelle "mb_user" für den Benutzer wieder auf 0 setzen.
owsproxy
# --------------------------------------------
# URL to owsproxy
# (no terminating slash)
# --------------------------------------------
define("OWSPROXY", "http://<ip or name>/owsproxy");
Detaillierte Information finden Sie auf der Seite owsproxy
Definitions for HTTP Authentication
# --------------------------------------------
# Definitions for HTTP Authentication
# --------------------------------------------
define('REALM', 'mapbender_registry');
define('NONCEKEY', 'mapbender');
$nonceLife = 300;
define('HTTP_AUTH_PROXY',"https://".$_SERVER['HTTP_HOST']."/http_auth"); //Problem - behind a rewrite rule - define it hardcoded?
Connection-Typ
# --------------------------------------------
# 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>");
CONNECTION
Wählen Sie die Art des Webzugriffes der Mapbender Server-Komponenten. Die Voreinstellung ist HTTP, ggf. müssen Sie curl oder socket verwenden, wenn der Server hinter einem Proxy installiert ist.
Proxy
Für das Anzeigen der Karten braucht nur der Client (Browser) einen Zugang zu allen eingebundenen WMS-Diensten.
Für das Laden der OWS-Capabilities und für die serverseitige Druckfunktion muss der Mapbender-Server diese Dienste erreichen können (hier wird der Mapbender-Server selbst zum WMS-Client). Wenn sich der Server hinter einer Firewall befindet muss dafür ggf. ein Proxy verwendet werden. Siehe auch: Troubleshooting_printPDF#PrintPDF
Proxy Exceptions
In komplexen Architekturen können interne und externe Dienste gemischt werden. Für die externen Dienste wird der oben angegebene Proxy verwendet. In diesem Abschnitt werden alle Dienstadressen aufgelistet, die von der Proxy-Nutzung ausgenommen werden sollen.
# --------------------------------------------
# HOSTs not for Proxy (curl)
# --------------------------------------------
define("NOT_PROXY_HOSTS", "<ip>,<ip>,<ip>");
Security
# --------------------------------------------
# security: path to modules
# --------------------------------------------
define("CHECK", true);
Eine Sicherheitsüberprüfung, die Benutzern lediglich die Nutzung eigener Skripte und Funktionen in Oberflächen einzubinden. Siehe auch 'Permission denied' beim Hinzufügen neuer Module. Diese Option sollte vor allem im Portalbetrieb und bei anyonymen Benutzern eingeschaltet bleiben. Wenn Benutzer selbst ganz neue Module erstellen, müssen sie zunächst die Berechtigung dafür erhalten.
Portal
# --------------------------------------------
# enable/disable portal
# --------------------------------------------
define("PORTAL", false);
Mapbender kann als Portal eingesetzt werden, siehe Mapbender Portal, dann können Benutzer sich eine eigene Benutzerkennung erzeugen und sich im Mapbender anmelden, siehe CreateUser.
MD_OVERWRITE - enable/disable ows metadata overwrite
# --------------------------------------------
# enable/disable ows metadata overwrite
# If set to false, the edited metadata of the ows will not
# automatically exchanged with the metadata from the server,
# when updating the service. It has to be done with help of
# the metadata editor afterwards
# --------------------------------------------
define("MD_OVERWRITE", true);
Mapbender kann Emails an seine Benutzer senden, z.B. um ein neues Passwort zu verschicken. Das Monitoring-Modul kann Benutzer auch über Änderungen oder den Ausfall von OGC Diensten informieren.
# --------------------------------------------
# mail settings for internal mapbender mails
# smtp mailing
# for further settings check 'class_administration.php'
# please check phpmailer for more information
# --------------------------------------------
define("USE_PHP_MAILING", "false");
define("MAILHOST", "<host>");
define("MAILUSERNAME", "<user>");
define("MAILPASSWORD", "<password>");
define("MAILADMIN", "<mailaddress of the mailadmin>");
define("MAILADMINNAME", "<mailadminname>");
$mailHost = MAILHOST;
$mailUsername = MAILUSERNAME;
$mailPassword = MAILPASSWORD;
Damit Mapbender Emails über SMTP versenden kann, muss der Administrator einen Mailserver und gültigen Mailaccount auf diesem Server eintragen.
Weitere Einstellungen werden in der class_administration.php hinterlegt. Mapbender verwendet PHPMmailer Version 1.72 (bitte im Code prüfen).
Beispiel:
$mailHost = "192.163.0.1"; $mailUsername = "mapbender"; $mailPassword = "mapbender";
WMS Monitoring
# --------------------------------------------
# wms monitoring
# --------------------------------------------
define("AUTO_UPDATE", "0");
define("TIME_LIMIT", "300");
define("PHP_PATH", "/usr/bin/");
Siehe MonitorCapabilities
Mapbender error logging
# --------------------------------------------
# Mapbender error logging
# --------------------------------------------
define("LOG_LEVEL_LIST", "off,error,warning,notice,all");
define("LOG_LEVEL", "all");
define("LOG_JS", "on"); // "on", "alert", "console", "off"
- LOG_LEVEL_LIST: Liste der verfügbaren Loggingstufen. !!Dieser Wert ist nach core/system.php verschoben!!
- LOG_LEVEL: Ein Eintrag der Liste LOG_LEVEL_LIST:
- off: es wird nichts geloggt.
- error: Es werden lediglich Fehlermeldungen geloggt.
- warning: Es werden Fehlermeldungen und Warnungen geloggt.
- notice: Es werden Fehlermeldungen und Warnungen und Hinweise geloggt.
- all: Es wird alles geloggt (Momentan entspricht das "notice").
- LOG_JS: Einstellung bzgl. Umgang mit JavaScript-Logging: Die Logeinträge werden
- on: wie in php in eine Logdatei geschrieben.
- alert: als ein alert im Browser ausgegeben. Sinnvoll beim Debuggen mit Internet Explorer.
- console: als ein Konsoleneintrag im Firebug ausgegeben. Sinnvoll beim Debuggen mit Firefox.
- off: ins Nirwana befördert.
Calculate Bounding Boxes
Mapbender >2.7 kann für neue hochgeladene/aktualisierte WMS'e das Umgebungsrechteck (BoundingBox) automatisch für mehrere SRS berechnen.
Voraussetzungen für die Berechnungen in der layer_epsg Tabelle sind:
- WMS Dienst muss das angegebene Koordinatensystem (SRS) unterstützen
- Die Mapbender Datenbank muss mit der PostGIS Spracherweiterung ausgestattet sein.
- In der Konfiguration (siehe unten) müssen alle zu berechnenden Koordinatensysteme im "SRS_ARRAY" aufgelistet sein
# --------------------------------------------
# calculate bounding boxes for all supported SRS (PostGIS required)
# --------------------------------------------
define("SRS_ARRAY", "4326, 31466, 31467, 31468, 25832");
Beachten Sie, dass das Kommentierungszeichen vor "define" entfernt wird.
PREVIEW
Im Mapbender > 2.7 können über die wms und wmc Metadateneditoren (GUI's) Voransichten von WMS Layern und WMC Dokumenten generiert werden. Diese werden in dem hier definierten Verzeichnis abgelegt und vom Metadatananzeige Modul verwendet. Die Vorschau der Layer wird außerdem in die ISO19139 Dokumente geschrieben und damit auch über eine verteilte Katalogsuche bspw. mittels geonetwork nutzbar.
METADATA_DIR
#---------------------------------------------
# METADATA
# This path is defined to allow a saving of iso19139 xml files which are generated by mapbender and metador
# The folder should be owned by the webserver user to allow writing of files which are generated from a php
# script. The content of the folder may be harvested
#---------------------------------------------
define("METADATA_DIR", "../../metadata");
UPLOAD
# --------------------------------------------
# UPLOAD
# --------------------------------------------
define("UPLOAD_DIR", "../tmp");
define("UPLOAD_WHITELIST_FILE_TYPES", "");
define("UPLOAD_BLACKLIST_FILE_TYPES", "");
define("UPLOAD_MAX_SIZE_KB", 2048);
WFS digitizing enables file upload in a directory. You can define the directory where you want to upload the files and define which file-types are invalid/valid and define the maximum file size.
PUBLIC_USER
# --------------------------------------------
# define a public user by mb_user_id
# This user is a typical anonymous user which don't need to authenticate itself.
# Some functions of the portal framework not allowed for this user.
# --------------------------------------------
define("PUBLIC_USER", "");
for example
define("PUBLIC_USER", "2");
Dieser Parameter definiert einen anonymen Nutzer (über die mb_user_id), der nicht speziell authentifiziert werden muss. In vielen Mapbender Anwendungen wird hier mit einer Gast Kennung gearbeitet. Es ist sinnvoll diesen Nutzer herauszuheben, da bsw. bei der Verwendung von Mapbender als Geoportal dieser Nutzer nur eingeschränkte Rechte hat. Alle Funktionen die eine Identifizierung benötigen (Nutzer mit bekannter Identität) sollten für diesen Nutzer dekativiert sein. (mb_user_id)
SESSION_NAME
# --------------------------------------------
# Define a session name (useful for installations when more than one mapbender is installed on one server.
# These installations won't share the session but will share probably one database. When the user switch from one
# to another installation - and there are different session names - the configuration from the session will be forgotten. There is a new environment.)
# --------------------------------------------
#define("SESSION_NAME", "MAPBENDER");
Hier kann man einen Namen für die Mapbender Session setzen. Damit ist es problemlos möglich mehrere mapbender Instanzen auf einem Sewrver laufen zu lassen, die sich z.B. auch eine Datenbank teilen. Die Differenzierung der Session (auch cookie Namen) verhindert z.B. dass der Nutzer root auf dem einen System auch gleichzeitig der Nutzer root auf dem anderen System ist ;-) !
HOSTNAME WHITELIST
#---------------------------------------------
# HOSTNAME WHITELIST
# The whitelist is used for some modules who generate urls from a given hostName GET parameter.
# In such a case it is usefull to give a whitelist for security reasons!
# If no hostName is given, the parameter $_SERVER['HTTP_HOST'] is used for the urls!
#---------------------------------------------
define("HOSTNAME_WHITELIST", "");
GEO_RSS_FILE
# --------------------------------------------
# RSS
# Mapbender > 2.7 generates a GeoRSS file which shows the changes in the mapbender service database. The
# GeoRSS file get entries when wms are uploaded, updated or deleted. The RSS file can be used to show the positions
# of new layers and services on in the own mapframe or in other applications.
# --------------------------------------------
define("GEO_RSS_FILE", "../tmp/georss.xml");
- Im Mapbender > 2.7 wird beim Upload/Update und Delete von WMS ein Eintrag in einer GeoRSS Datei gesetzt.
- Diese Datei kann im Mapbender selbst aber auch von anderen Systemen genutzt werden, um die Bereiche mit Änderungen z.B. im Kartenfenster graphisch darzustellen.
- Außerdem können Nutzer von Portalanwendungen immer über neue Ressourcen informiert werden.
- Die URL des Feed Items verweist auf die Mapbender Metadatenanzeige.
- Die Größe der GeoRss-Datei kann definiert werden.
WRAPPER_PATH
# --------------------------------------------
# define a wrapper for index.php/login.php to use e.g. the get api when integrated in external applications like cms
# --------------------------------------------
#define("WRAPPER_PATH","/portal/karten.html");
#define("WRAPPER_PATH","");
PHP-Globals
Diese Einträge nicht ändern!
###HACK for GLOBALS $DBSERVER=DBSERVER; $DB=DB; $OWNER=OWNER; $PW=PW; $GEOS_DBSERVER=GEOS_DBSERVER; $GEOS_DB=GEOS_DB; $GEOS_PORT =GEOS_PORT; $GEOS_OWNER=GEOS_OWNER; $GEOS_PW=GEOS_PW; ?>
weitere Konfigurationsdateien
Weitere Konfigurationsdateien, die nicht durch diese Datei ersetzt wurden:
- mapbender\http\print\printPDF.conf, Siehe Seite Print
- session.conf

