Installation unter Windows¶
Mapbender benötigt eine Datenbank zur Speicherung der Administrationsinformation. Das Installationspaket enthält bereits eine SQLite-Datenbank, die direkt verwendet werden kann. Für den produktiven Einsatz wird allerdings die Nutzung einer PostgreSQL Datenbank empfohlen.
Voraussetzungen¶
PHP NTS >= 8.1 (https://windows.php.net/download/)
- Apache Installation, als Dienst eingerichtet (https://www.apachelounge.com/download/) mit folgenden aktivierten Modulen:
mod_rewrite
mod_fcgid
- PostgreSQL Installation (https://www.enterprisedb.com/downloads/postgres-postgresql-downloads)
Es wird empfohlen, eine PostgreSQL Datenbank für Mapbender zu verwenden.
Es wird empfohlen, einen eigenen Datenbankbenutzer für den Zugriff auf die Mapbender Datenbank anzulegen.
- Als Webserver kann auch Nginx verwendet werden, der für Windows aber als Beta-Version betrachtet wird. Sollte es trotzdem
gewünscht sein, nginx auf Windows zu verwenden, kann die gleiche Konfiguration wie für die Linux-Installation verwendet werden.
Konfiguration PHP¶
Entpacken des Zip-Archives, z.B. nach c:\php.
Abhängig von der PHP-Version werden unter Windows PHP-Variablen für ein Temp-Verzeichnis nicht richtig gesetzt.
Es muss deshalb geprüft werden, ob die folgenden Variablen (php.ini) gesetzt sind:
sys_temp_dir
upload_tmp_dir
date.timezone
Der Pfad vom PHP-bin-Verzeichnis zur
PATH
-Variable (Windows-Umgebungsvariable) muss hinzugefügt werden.Aktivieren Sie die benötigten PHP-Erweiterungen in der php.ini Konfigurationsdatei:
# php.ini
extension=php_curl
extension=php_fileinfo
extension=php_gd
extension=php_intl
extension=php_pdo_pgsql
extension=php_pdo_sqlite
extension=php_pgsql
extension=php_openssl
extension=php_mbstring
extension=php_zip
extension=php_bz2
Bitte prüfen Sie die FAQ - Häufig gestellte Fragen für weitere PHP-Einstellungen
Bitte prüfen Sie die API zur Verwendung der Mapbender API
Mapbender entpacken und im Webserver registrieren¶
Download der aktuellen Mapbender Version und entpacken nach c:\mapbender\
Konfiguration Apache¶
Ein Unterordner conf.d muss im Verzeichnis <apache>/conf erstellt werden
In der httpd.conf am Ende einfügen:
# Include directory conf.d
Include "conf/conf.d/*.conf"
Datei <apache>\conf\conf.d\mapbender.conf mit dem folgenden Inhalt anlegen:
Alias /mapbender c:/mapbender/public/
<Directory c:/mapbender/public/>
Options MultiViews FollowSymLinks
Require all granted
# SetEnvIf aktiviveren, wenn die Mapbender API verwendet werden soll
# SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
RewriteEngine On
RewriteBase /mapbender/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
Der Apache Webserverdienst muss im Anschluss neu gestartet werden.
mod_fcgid¶
Datei <apache>\conf\conf.d\fcgi.conf mit dem folgenden Inhalt anlegen:
LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv PHPRC "c:/php/"
FcgidInitialEnv PATH "c:/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem"
FcgidInitialEnv SystemRoot "C:/Windows"
FcgidInitialEnv TEMP "C:/WINDOWS/TEMP"
FcgidInitialEnv TMP "C:/WINDOWS/TEMP"
FcgidInitialEnv windir "C:/WINDOWS"
FcgidPassHeader Authorization
FcgidIOTimeout 1200
FcgidConnectTimeout 1200
FcgidBusyScanInterval 1200
FcgidBusyTimeout 1200
FcgidErrorScanInterval 1200
FcgidIdleScanInterval 1200
FcgidIdleTimeout 1200
FcgidZombieScanInterval 1200
FcgidMaxProcesses 1000
FcgidOutputBufferSize 64
FcgidProcessLifeTime 3600
FcgidMaxRequestsPerProcess 10000
FcgidMinProcessesPerClass 0
FcgidFixPathinfo 0
MaxRequestLen 200000
<Files ~ "\.php$">
Options Indexes FollowSymLinks ExecCGI
AddHandler fcgid-script .php
FcgidWrapper "c:/php/php-cgi.exe" .php
</Files>
Konfiguration PostgreSQL¶
Für den Einsatz in einer Produktivumgebung wird nachfolgend die Konfiguration einer PostgreSQL Datenbank beschrieben.
Voraussetzungen:
Installation von PostgreSQL
vorhandene Datenbank zur Mapbender-Konfiguration
ggf. eigenen Benutzer für den Zugriff
Installation PHP-PostgreSQL Treiber:
# php.ini
extension=php_pgsql
extension=php_pdo_pgsql
Die Konfiguration der Datenbankverbindung erfolgt über eine Variable, die den gesamten Verbindungsstring enthält. Konfigurieren Sie sie, indem Sie sie in Ihrer .env.local-Datei hinzufügen.
MAPBENDER_DATABASE_URL="postgresql://dbuser:dbpassword@localhost:5432/dbname?serverVersion=17&charset=utf8"
Weitere Informationen zur Einrichtung von Datenbankverbindungen finden sich im Kapitel YAML Konfiguration (Konfigurations- und Anwendungsdateien).
Öffnen Sie nun die Eingabeaufforderung.
Zur Erzeugung der Datenbank geben Sie bitte folgenden Befehl ein (nur wenn die Datenbank nicht bereits vorliegt):
cd c:\mapbender
php.exe bin/console doctrine:database:create
Einrichtung der Mapbender Tabellenstruktur und laden der Demo-Anwendungen:
cd c:\mapbender
php.exe bin/console doctrine:schema:create
php.exe bin/console mapbender:database:init -v
php.exe bin/composer run reimport-example-apps
Für die Administration von Mapbender wird ein Root-Benutzer benötigt. Dieser Benutzer wird über den folgende Befehl angelegt:
php.exe bin/console fom:user:resetroot
Weitere Informationen zur Konfiguration im Kapitel Details zur Konfiguration von Mapbender
Der erste Start¶
Die Mapbender Installation kann unter http://[hostname]/mapbender/ aufgerufen werden.
Überprüfung
Überprüfen Sie, ob der Alias erreichbar ist:
http://localhost/mapbender/
Per Voreinstellung lauten die Anmeldedaten (wenn die SQLite-Datenbank verwendet wurde)
Benutzername: root
Passwort: root
Zur Überprüfung der Konfiguration dient der folgende Befehl:
php.exe bin/console mapbender:config:check
Hint
Bitte beachten Sie, dass der Befehl mapbender:config:check
die PHP-CLI Version nutzt. Die Einstellungen der CLI-Version können sich von denen der Webserver PHP-Version unterscheiden. Nutzen Sie beispielsweise php -r 'phpinfo();'
zur Ausgabe der PHP-Webserver Einstellungen.
Weitere Informationen dazu finden Sie unter bin/console mapbender:config:check.
Glückwunsch! Mapbender wurde erfolgreich installiert. Informationen zu den ersten Schritten mit Mapbender finden sich im Mapbender Schnellstart.
Optional¶
Konfiguration zum Druck von Vector Tiles unter Windows¶
Node.js Installation¶
Zuerst installieren wir Node.js, mithilfe des Windows Installer von https://nodejs.org/en/download.
Der Apache-Webserver benötigt den Pfad zum Node.js-Verzeichnis, weshalb dieser der Umgebungsvariable PATH hinzugefügt werden muss.
Beispiel in der fcgi.conf:
FcgidInitialEnv PATH "C:/srv/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;C:/Program Files/nodejs"
Installation des Node-Moduls puppeteer¶
Die Installation des Node-Moduls puppeteer ist unter Windows etwas aufwendiger, da diese im Kontext des Benutzers erfolgen muss, mit dem der Apache-Webserver läuft.
Oft läuft der Apache als Dienst mit dem Benutzer ‘Lokales System’. Sollte das der Fall sein, benötigt man ein zusätzliches Tool, mit dem man eine CMD- oder PowerShell-Kommandozeile als SYSTEM ausführen kann:
Download PsExec Tool: https://docs.microsoft.com/de-de/sysinternals/downloads/psexec
ZIP-Datei entpacken, z.B. nach C:\Tools\PsExec\.
CMD-Konsole oder PowerShell als Administrator ausführen.
Konsole als SYSTEM ausführen:
c:\Tools\PsExec\PsExec.exe -i -s cmd.exe
In der SYSTEM-Konsole das puppeteer Modul im application Verzeichnis des Mapbender (nicht global!) installieren:
c:\srv\htdocs\mapbender\application> npm install puppeteer
c:\srv\htdocs\mapbender\application> npm puppeteer browsers install