Installation auf Ubuntu und Debian

Der schnelle Weg und die vorkonfigurierte Datenbank

Die folgende Installationsanleitung beschreibt die notwendigen Schritte auf einem aktuellen Ubuntu- oder Debian-System mit PHP 5.5 oder 5.6. Wir nehmen an, dass Apache 2.4 auf dem System läuft. Anmerkungen zu PHP 7 und zu Apache 2.2 finden sich weiter unten.

Falls Sie einen schnellen Test ohne Einrichtung eines Webservers bevorzugen, schauen Sie in das Kapitel Installation auf dem Symfony eigenen Webserver.

Mapbender wird seit Version 3.0.6.0 mit einer vorkonfigurierten Datenbank auf Basis von SQLite mitgeliefert, in der schon Anwendungen realisiert sind (die Datenbank liegt unter <mapbender>/app/db/demo.sqlite). Die Datenbank enthält die Mapbender-Konfiguration, wie Anwendungen, Nutzer und registrierte Dienste, sie enthält keine Geodaten.

Falls Sie eine andere Datenbank wie PostgreSQL vorliegen haben und nutzen möchten, finden Sie im Kapitel Mapbender Einrichtung auf PostgreSQL die notwendigen Schritte.

Vorbereitung

Beachten Sie die Systemvoraussetzungen, wo Sie auch die Download-Links für Mapbender3 finden.

Dort sind auch die notwendigen Komponenten für Mapbender3 aufgelistet, die Sie folgendermaßen installieren können:

apt install php5 php5-gd php5-curl php5-cli php5-sqlite sqlite php5-intl php5-mbstring curl openssl

Zusätzlich für die Entwicklung:

apt install php5-bz2

Laden Sie das Apache Modul rewrite.

sudo a2enmod rewrite

Entpacken und im Webserver registrieren

Entpacken Sie das Mapbender3 Archiv (tar.gz oder zip) beispielsweise im Verzeichnis /var/www/mapbender3 (siehe das Kapitel Systemvoraussetzungen und den Download für Details).

Erstellen Sie den Apache Alias. Sie können Mapbender3 in ein beliebiges anderes Verzeichnis entpacken und müssen dann nur die folgende Datei anpassen und auf den richtigen Ordner verweisen lassen.

Legen Sie die Datei /etc/apache2/sites-available/mabender3.conf mit dem folgenden Inhalt an.

Alias /mapbender3 /var/www/mapbender3/web/
<Directory /var/www/mapbender3/web/>
 Options MultiViews FollowSymLinks
 DirectoryIndex app.php
 Require all granted

 RewriteEngine On
 RewriteBase /mapbender3/
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ app.php [QSA,L]
</Directory>

Aktivieren Sie danach die Seite mit:

a2ensite mapbender3.conf

Laden Sie den Apache Server neu.

service apache2 reload

Verzeichnisrechte

Setzen Sie die Schreibrechte für Besitzer (u), Gruppe (g) und Andere (o). Weisen Sie die Rechte dem Apache User (www-data) zu.

sudo chmod -R ugo+r /var/www/mapbender3
sudo chown -R www-data:www-data /var/www/mapbender3
sudo chmod -R ug+w /var/www/mapbender3/web/uploads

# wenn Sie die vorkonfigurierte dateibasierte Datenbank nutzen möchten
sudo chmod -R ug+w app/db/demo.sqlite

Der Apache Nutzer benötigt v.a. Schreibrechte auf app/cache, app/logs, web/uploads und app/db/demo.sqlite (wenn Sie die mitgelieferte dateibasierte Datenbank nutzen möchten) und Leserechte auf dem web Verzeichnis.

Start und Anmelden am Mapbender

Sie können nun auf Ihre Mapbender3 Installation mit http://hostname/mapbender3/ zugreifen.

Klicken Sie auf den Anmelden-Link oben rechts, um zur Anmeldung zu gelangen. Melden Sie sich mit dem neu erstellten Benutzer an. Per Voreinstellung lauten die Anmeldedaten root/root.

Starten Sie Mapbender3 im Entwicklermodus, indem Sie das Skript app_dev.php aufrufen: http://localhost/mapbender3/app_dev.php

Wenn Sie mehr über Mapbender3 erfahren möchten, schauen Sie sich das Mapbender3 Quickstart Dokument an.

Mapbender Einrichtung auf PostgreSQL

Falls Sie die Mapbender3 Konfiguration in einer anderen Datenbank statt der SQLite Datenbank ablegen möchten (und da spricht nichts dagegen), sind hier die notwendigen Schritte beschrieben. Als Datenbank-Umgebung wird in diesem Beispiel PostgreSQL verwendet.

Sie benötigen den PHP-PostgreSQL Treiber.

apt install php5-pgsql

Passen Sie die Mapbender3 Konfigurationsdatei parameters.yml (app/config/parameters.yml) an und definieren Sie die Datenbank, die Sie erzeugen und nutzen möchten. Mehr Informationen dazu finden Sie im Kapitel Konfiguration der Datenbank.

database_driver:   pdo_pgsql
database_host:     localhost
database_port:     5432
database_name:     mapbender3
database_path:     ~
database_user:     postgres
database_password: geheim

Setzen Sie die app/console Befehle ab. Details zu diesen Befehlen finden Sie im Kapitel Details zur Konfiguration von Mapbender3.

cd /var/www/mapbender3
app/console doctrine:database:create
app/console doctrine:schema:create
# app/console assets:install web # nicht notwendig
app/console fom:user:resetroot
app/console doctrine:fixtures:load --fixtures=./mapbender/src/Mapbender/CoreBundle/DataFixtures/ORM/Epsg/ --append
app/console doctrine:fixtures:load --fixtures=./mapbender/src/Mapbender/CoreBundle/DataFixtures/ORM/Application/ --append

Hiermit ist die Konfiguration von Mapbender3 für PostgreSQL fertig und Sie enthält nun auch die drei Beispielanwendung wie auch die unterstützten EPSG-codes.

Mapbender Einrichtung auf MySQL

Die Einrichtung von Mapbender auf MySQL ist ähnlich der auf PostgreSQL, Sie benötigen nur einen anderen PHP-Treiber und einen anderen Parameter in der parameters.yml. Falls Sie also die Mapbender3 Konfiguration in einer anderen Datenbank statt der SQLite Datenbank ablegen möchten (und da spricht nichts dagegen), sind hier die notwendigen Schritte beschrieben.

Sie benötigen den PHP-MySQL Treiber.

apt install php-mysql

Passen Sie die Mapbender3 Konfigurationsdatei parameters.yml (app/config/parameters.yml) an und definieren Sie die Datenbank, die Sie erzeugen und nutzen möchten. Mehr Informationen dazu finden Sie im Kapitel Konfiguration der Datenbank.

database_driver:   pdo_mysql
database_host:     localhost
database_port:     3306
database_name:     mapbender3
database_path:     null
database_user:     root
database_password: Tr0ub4dor&3

Setzen Sie die app/console Befehle ab. Details zu diesen Befehlen finden Sie im Kapitel Details zur Konfiguration von Mapbender3.

cd /var/www/mapbender3
app/console doctrine:database:create
app/console doctrine:schema:create
# app/console assets:install web # nicht notwendig
app/console fom:user:resetroot
app/console doctrine:fixtures:load --fixtures=./mapbender/src/Mapbender/CoreBundle/DataFixtures/ORM/Epsg/ --append
app/console doctrine:fixtures:load --fixtures=./mapbender/src/Mapbender/CoreBundle/DataFixtures/ORM/Application/ --append

PHP 7

Für PHP 7 werden weitere Quellen benötigt. Die Paketliste bei Verwendung von PHP 7:

sudo apt install php php-gd php-curl php-cli php-xml php-sqlite3 sqlite3 php-intl openssl php-zip php-mbstring php-bz2

Zur Nutzung von PostgreSQL zusätzlich:

sudo apt install php-pgsql

Für MySQL:

sudo apt install php-mysql

Zusätzlich muss PHP 7 in Apache aktiviert werden:

a2enmod php7.0

Einrichtung für Apache 2.2

Einige Debian Versionen unterstützen für Apache 2.2 die Ablage der mapbender3.conf Datei im Verzeichnis /etc/apache2/sites-available und die Aktivierung über den Befehl a2ensite. Je nach Betriebssystem muss die Datei aber im Verzeichnis /etc/apache2/conf.d/ abgelegt werden.

Aktivieren Sie das Rewrite-Modul von Apache.

sudo a2enmod rewrite

Im Unterschied zu Apache 2.4 gibt es für Apache 2.2 unterschiedliche Direktiven und andere Standardwerte (Order und Allow, AllowOverride), die in die mapbender3.conf Datei eingetragen werden. Diese Unterschiede sind im Upgrade-Guide von Apache 2.2 zu Apache 2.4 beschrieben.

Apache 2.2 Konfiguration mapbender3.conf:

 ALIAS /mapbender3 /var/www/mapbender3/web/
 <Directory /var/www/mapbender3/web/>
   Options MultiViews FollowSymLinks
   DirectoryIndex app.php
   AllowOverride none
   Order allow,deny
   Allow from all

   RewriteEngine On
   RewriteBase /mapbender3/
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ app.php [QSA,L]
</Directory>

Überprüfung

Prüfen Sie, ob der Alias erreichbar ist:

Öffnen Sie das Symfony Welcome Script config.php. Das Skript prüft, ob alle notwendigen Komponenten installiert wurden und ob die Konfiguration erfolgte. Sofern noch Probleme vorliegen, sollten diese behoben werden.

../../../_images/mapbender3_symfony_check_configphp.png