Installation

Dieses Dokument beschreibt die wichtigsten Schritte, um Mapbender3 zu installieren.

Voraussetzungen

Mapbender3 benötigt die folgenden Komponenten:

  • >= PHP 5.3.10 (php5)
  • PHP CLI Interpreter (php5-cli)
  • PHP SQLite Erweiterung (php5-sqlite)
  • PHP cURL Erweiterung (php5-curl)
  • PHP Alternative PHP Cache (php-apc)
  • PHP Internationalisierungserweiterung (php5-intl)
  • PHP GD (php5-gd) für den Druck
  • PHP FileInfo für den Druck zur Prüfung der Bilder
  • APACHE mod_rewrite

Um optional eine andere Datenbank als die vorkonfigurierte SQLite zu verwenden, wird eine PHP-Erweiterung benötigt, die von Doctrine unterstützt wird: Doctrine.

Beachten Sie, dass die SQLite Erweiterung auf jeden Fall benötigt wird. Sie benötigen diese, um im Entwicklermodus zu arbeiten, um den Web Installer zu verwenden oder um Profiler-Daten zu erzeugen sowie um Fehler zu analysieren.

Download

Installationspakete werden als komprimierte Pakete ausgegeben und sind auf der Download-Seite verfügbar unter http://mapbender3.org/download.

Nach dem Herunterladen extrahieren Sie die komprimierten Pakete in ein Verzeichnis Ihrer Wahl. Stellen Sie sicher, dass der Webserver auf das gerade dekomprimierte Webverzeichnis in dem Mapbender Verzeichnis zeigt. Sorgen Sie dafür, dass app.php als Verzeichnis-Index eingestellt ist.

Beispiel für eine Apache ALIAS Konfiguration in der Datei /etc/apache2/conf.d/mapbender3.conf (Apache 2.2) oder /etc/apache2/conf-enabled/mapbender3.conf (Apache 2.4). Legen Sie diese Datei an und berechtigen Sie Apache diese zu lesen.

Bitte beachten Sie, dass Apache 2.4 andere Direktiven zur Access Control verwendet

Apache 2.4 Konfiguration:

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 %{ENV:REDIRECT_STATUS} ^$
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ app.php/$1 [PT,L,QSA]
</Directory>

Apache 2.2 Konfiguration:

ALIAS /mapbender3 /var/www/mapbender3/web/
<Directory /var/www/mapbender3/web/>
  Options MultiViews
  DirectoryIndex app.php
  Order allow,deny
  Allow from all
</Directory>
# Debian basierte Distributionen
sudo a2enmod rewrite

#Windows Aktivierung des Moduls rewrite in der httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so

Eine Git-basierte-Installation - vorwiegend für Entwickler - ist ebenso möglich.

Konfiguration

Verwendung der Kommandozeile

Um die Mapbender3-Installation zu konfigurieren, sind die folgenden Schritte notwendig:

  • Erzeugen der Datenbank
  • Erzeugen der Datenbankschemas
  • Kopieren des bundle Assets in das öffentliche web-Verzeichnis
  • Initialisieren der Rollen
  • Erzeugen des “root” Benutzers
  • Laden der SRS Parameters (EPSG-Code Definition)
  • Laden der Anwendungen der mapbender.yml Definition in die Datenbank

Diese Schritte können mit dem console-Hilfsprogramm von Symfonie2 durchgeführt werden, auf dem das Mapbender3 Framework aufbaut. Hier noch ein wichtiger Hinweis, bevor Sie fortfahren:

Das console-Hilfsprogramm wird Dateien in die Verzeichnisse app/cache und app/logs schreiben.
Für diese Operationen werden die Benutzerrechte des Benutzers benötigt, mit dem Sie
angemeldet sind. Sie benötigen ebenfalls Benutzerrechte für das Verzeichnis app/db und die
SQLite Datenbank. Wenn Sie die Applikation in Ihrem Browser öffnen, wird der Server-PHP-
Prozess versuchen, auf diese Dateien zuzugreifen oder in die Verzeichnisse zu schreiben mit
anderen Benutzerrechten. Stellen Sie sicher, dass Sie den Verzeichnissen und Dateien Schreib-
und Leserechte zugewiesen haben.

Wichtiger Hinweis: Die folgenden app/console Schritte gehen davon aus dass Sie sich oberhalb des app-Verzeichnisses befinden (für die git-Installation bedeutet das mapbender3/application/ andernfalls mapbender3/).

cd mapbender3/
oder für die git-basierte Installation
cd mapbender3/application

Anpassen der Konfigurationsdatei

Die Parameter der Datenbankverbindung sind zusammen mit einigen anderen Konfigurationsparametern in der Datei app/config/parameters.yml gespeichert. In dieser Datei wird YAML Syntax verwendet. Achten Sie darauf keine Tabulatoren für Einrückungen zu verwenden. Verwenden Sie stattdessen Leerzeichen.

Ihre Datenbankkonfiguration könnte in der parameters.yml könnte folgendermaßen aussehen, wenn Sie PostgreSQL verwenden:

database_driver:   pdo_pgsql
database_host:     localhost
database_port:     5432
database_name:     mapbender3
database_path:
database_user:     postgres
database_password: 1xyz45ab

Erzeugen der Datenbank

Mit Symfony2 kann die Datenbank erzeugt werden. Beachten Sie, dass dazu die benötigten Datenbank-Benutzerrechte vorliegen. Rufen Sie folgenden Befehl mit dem console-Hilfsprogramm auf:

app/console doctrine:database:create

Erzeugen des Datenbankschemas

Erzeugen des Datenbankschemas über Symfony2:

app/console doctrine:schema:create

Sie müssen die Tabellen des Sicherheitssystems separat initialisieren:

app/console init:acl

Kopieren des bundles’ assets

Jedes Bundle hat seine eigenen Abhängigkeiten - CSS-Dateien, JavaScript-Dateien, Bilder und mehr – diese müssen in das öffentliche web-Verzeichnis kopiert werden:

app/console assets:install web

Sie können auch einen symbolischen Link verwenden, statt die Dateien zu kopieren. Dies erleichtert die Bearbeitung der abhängigen Dateien in den bundle-Verzeichnissen.

app/console assets:install web --symlink --relative

Erzeugen des administrativen Benutzers

Der erste Benutzer, der alle Privilegien hat, wird mit folgendem Kommando erzeugt:

app/console fom:user:resetroot

Dieses Kommando wird interaktiv alle notwendigen Informationen abfragen und den Benutzer in der Datenbank erzeugen.

Sie können auch den Modus silent verwenden, wenn Sie ein Skript nutzen möchten, um Mapbender3 zu installieren und dabei nicht nach Parametern gefragt werden wollen.

app/console fom:user:resetroot --username="root" --password="root" --email="root@example.com" --silent

Einfügen den SRS Parameter

Fügen Sie die Informationen zu SRS Parametern über den folgenden Aufruf in die Datenbank:

app/console doctrine:fixtures:load --fixtures=./mapbender/src/Mapbender/CoreBundle/DataFixtures/ORM/Epsg/ --append

Importieren von Anwendungen aus der mapbender.yml

Sie können die Anwendungen, die in der mapbender.yml definiert sind, in die Datenbank importieren:

app/console doctrine:fixtures:load --fixtures=./mapbender/src/Mapbender/CoreBundle/DataFixtures/ORM/Application/ --append

Prüfen Sie die Schreibberechtigungen

Weisen Sie die Dateien dem Apache Benutzer (www-data) zu.

sudo chmod -R ugo+r /var/www/mapbender3
sudo chown -R www-data:www-data /var/www/mapbender3

Sie benötigen Schreibrechte für die Verzeichnisse app/cache und app/logs.

sudo chmod -R ug+w /var/www/mapbender3/app/cache
sudo chmod -R ug+w /var/www/mapbender3/app/logs
sudo chmod -R ug+w /var/www/mapbender3/web/assets
sudo chmod -R ug+w /var/www/mapbender3/web/uploads

Prüfen Sie Symfony config.php

Sie können Mapbender3 nun nutzen. Starten Sie Mapbender3 im Entwicklermodus, indem Sie das Skript app_dev.php aufrufen.

Notice: Klicken Sie auf den Loginlink oben rechts, um zur Abmedlung zu gelangen. Melden Sie sich mit dem neu erstellten Benutzer an.

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

Installationsbeispiel für Ubuntu

Installieren Sie die notwendigen Komponenten:

apt-get install php5 php5-pgsql php5-gd php5-curl php5-cli php5-sqlite sqlite php-apc php5-intl curl

Laden Sie das Apache Modul rewrite:

sudo a2enmod rewrite

Erstellen Sie den Apache ALIAS. Legen Sie die Datei /etc/apache2/conf.d/mapbender3 mit dem folgenden Inhalt an und starten Sie den Apache Server neu. Apache 2.4 benutzt andere Direktiven für die Access Control (zum Beispiel: “Require all granted”). Für Details schauen Sie bitte in die Apache Documentation: Upgrading to 2.4 from 2.2.

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

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

Setzen Sie die Schreibrechte für Besitzer (u), Gruppe (g) und Andere (a). Weisen Sie die Skripte 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/assets
sudo chmod -R ug+w /var/www/mapbender3/web/uploads

Passen Sie die Mapbender3 Konfigurationsdatei parameters.yml (app/config/parameters.yml) an und definieren Sie die Datenbank, die Sie erzeugen möchten.

database_driver:   pdo_pgsql
database_host:     localhost
database_port:     5432
database_name:     mapbender3
database_path:
database_user:     postgres
database_password: 1xyz45ab

Setzen Sie die app/console Befehle ab

cd /var/www/mapbender3
app/console doctrine:database:create
app/console doctrine:schema:create
app/console init:acl
app/console assets:install web
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 Installation von Mapbender3 fertig.

Prüfen Sie die config.php erneut

Sie müssen Schreibrechte für die Verzeichnisse app/cache und app/logs sowie web/assets vergeben.

sudo chmod -R ug+w /var/www/mapbender3/app/cache
sudo chmod -R ug+w /var/www/mapbender3/app/logs
sudo chmod -R ug+w /var/www/mapbender3/web/assets
sudo chmod -R ug+w /var/www/mapbender3/web/uploads

Sie können Mapbender3 nun nutzen. Starten Sie Mapbender3 im Entwicklermodus, indem Sie das Skript app_dev.php aufrufen.

Hinweis: Klicken Sie auf den Login-Link oben rechts, um zur Abmeldung zu gelangen. Melden Sie sich mit dem neu erstellten Benutzer an.

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

Installationsbeispiel für Windows

Installieren Sie die notwendigen Komponenten:

  • fügen Sie den Pfad zum PHP-bin Verzeichnis zu Ihrer PATH Variable hinzu
  • aktivieren Sie die PHP Erweiterunge in der php.ini Konfigurationsdatei
  • laden Sie das Apache Modul rewrite
extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_intl.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
# unter Windows Datei httpd.conf (Kommentar # entfernen) und Apache neu starten
LoadModule rewrite_module modules/mod_rewrite.so

Erstellen Sie den Apache ALIAS. Legen Sie die Datei /etc/apache2/conf.d/mapbender3.conf (oder für Apache 2.4 /etc/apache2/sites-enabled/mapbender3.conf) mit dem folgenden Inhalt an und starten Sie den Apache Server neu (bitte beachten Sie, dass Apache 2.4 andere Direktiven zur Access Control verwendet)

Beispiel ALIAS für Apache 2.4

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

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

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

Passen Sie die Mapbender3 Konfigurationsdatei parameters.yml (app/config/parameters.yml) an und definieren Sie die Datenbank, die Sie erzeugen möchten.

database_driver:   pdo_pgsql
database_host:     localhost
database_port:     5432
database_name:     mapbender3
database_path:
database_user:     postgres
database_password: 1xyz45ab

Rufen Sie die app/console Befehle über die php.exe auf.

c:
cd mapbender3
php.exe app/console doctrine:database:create
php.exe app/console doctrine:schema:create
php.exe app/console init:acl
php.exe app/console assets:install web
php.exe app/console fom:user:resetroot
php.exe app/console doctrine:fixtures:load --fixtures=./mapbender/src/Mapbender/CoreBundle/DataFixtures/ORM/Epsg/ --append
php.exe app/console doctrine:fixtures:load --fixtures=./mapbender/src/Mapbender/CoreBundle/DataFixtures/ORM/Application/ --append

Hiermit ist die Installation von Mapbender3 fertig.

Prüfen Sie die config.php erneut

Sie können Mapbender3 nun nutzen. Starten Sie Mapbender3 im Entwicklermodus, indem Sie das Skript app_dev.php aufrufen.

Hinweis: Klicken Sie auf den Login-Link oben rechts, um zur Abmeldung zu gelangen. Melden Sie sich mit dem neu erstellten Benutzer an.

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

Konfigurationsdateien

Die Basiskonfiguration erfolgt in der Datei app/config/parameters.yml. Eine Vorlage app/config/parameters.yml.dist liegt vor.

Die Konfigurationsdatei app/config/config.yml stellt weitere Parameter bereit, z.B. zur Konfiguration der Portalfunktion, Einrichtung des Owsproxy oder Einrichtung einer weiteren Datenbank.

parameters.yml

  • Datenbank: Parameter, die mit database beginnen, definieren die Databankverbindung.
  • Mailer: Die Mailerangaben starten mit mailer. Nutzen Sie z.B. smtp oder sendmail.
  • Spracheinstellung: Sie können eine Sprache (locale) für Ihre Anwendung angeben (Standardwert ist en, de ist verfügbar). Unter http://doc.mapbender3.org/en/book/translation.html erfahren Sie mehr über die Anpassung von Übersetzungen und wie neue Sprachen hinzugefügt werden können.

Hinweis: Sie benötigen einen Mailer, wenn Sie die Selbstregistrierung und das Paßwortsetzen nutzen möchten.

config.yml

  • fom_user.selfregistration: Um die Selbstregistrierung zu de/aktivieren, passen Sie den fom_user.selfregistration Parameter an. Sie müssen unter self_registration_groups eine/mehrere Gruppen angeeben, so dass selbstregistriere Anwender automatisch (bei der Registrierung) diesen Gruppen zugewiesen werden. Über die Gruppe bekommen Sie dann entsprechend Rechte zugewiesen.
  • fom_user.reset_password: Über diesen Parameter kann die Möglichkeit de/aktiviert werden, das Passwort neu zu setzen.
  • framework.session.cookie_httponly: Stellen Sie für HTTP-only session cookies sicher, dass der Parameter framework.session.cookie_httponly auf true steht.

Hinweis: Sie benötigen einen Mailer, wenn Sie die Selbstregistrierung und das Paßwortsetzen nutzen möchten.

Sofern Sie einen Proxy verwenden, müssen Sie diesen in der Datei config.yml im Bereich ows_proxy3_core angeben.

Eine Konfiguration könnte wie folgt aussehen:

ows_proxy3_core:
    logging: true
    obfuscate_client_ip: true
    proxy:
        host: myproxy
        port: 8080
        connecttimeout: 60
        timeout: 90
        noproxy:
            - 192.168.1.123

mapbender.yml

Eine Anwendung kann auf zwei Arten konfiguriert werden. Entweder über die mapbender.yml Datei oder über die Mapbender3 Administration im Browser.

  • Das Mapbender Team stellt mit jeder Version eine mapbender.yml mit Demoanwendungen mit den aktuellen Elementdefinitionen zur Verfügung (Sie können die Anwendungen deaktivieren indem Sie published: false setzen oder indem Sie die Datei leeren).
  • Anwendungen, die in der mapbender.yml definiert werden, können nicht über die Mapbender3 Administration im Browser bearbeitet werden.
  • Sie können allerdings die Anwendungen über einen app/console Befehl in die Datenbank übertragen.
app/console doctrine:fixtures:load --fixtures=./mapbender/src/Mapbender/CoreBundle/DataFixtures/ORM/Application/ --append

Aktualisierung von Mapbender3 auf eine neuere Version

Um Mapbender3 zu aktualisieren, müssen Sie die folgenden Schritte durchführen:

  • Laden Sie die neuste Version von http://mapbender3.org/builds/ herunter. Aktuelle Snapshots finden Sie unter http://mapbender3.org/builds/nightly/
  • Sichern Sie Ihre Konfigurationsdateien und ihre alte Mapbender Version
  • Ersetzen Sie die Dateien durch die neuen Mapbender Skripte
  • Vergleichen Sie die Konfigurationsdateien und prüfen diese auf neue Parameter.
  • Aktualisieren Sie Ihre Mapbender Datenbank
  • Das war’s auch schon! Schauen Sie sich Ihre neue Mapbender3 Version an.

Aktualisierungsbeispiel für Linux

Im Folgenden sind die einzelnen Schritte als Befehle aufgeführt.

# Laden Sie die neue Version herunter
wget -O http://mapbender3.org/builds/mapbender3-3.0.4.0.tar.gz /tmp/build_mapbender3/
tar xfz /tmp/build_mapbender3/mapbender3-3.0.4.0.tar.gz

# Sichern Sie die alte Version
mv -R /var/www/mapbender3 /var/www/mapbender3_save

# Aktivieren Sie den Code der neuen Version
cp -R /tmp/build_mapbender3/mapbender3-3.0.4.0 /var/www/
mv /var/www/mapbender3-3.0.4.0 /var/www/mapbender3

# copy your old configuration files to the new version
cp /var/www/mapbender3_save/app/config/parameters.yml /var/www/mapbender3/app/config/parameters.yml
cp /var/www/mapbender3/app/config/config.yml /var/www/mapbender3/app/config/config.yml-dist
cp /var/www/mapbender3_save/app/config/config.yml /var/www/mapbender3/app/config/config.yml

# händisch müssen Sie nun die Konfigirationsdateien auf neue Parameter überprüfen
# vergleichen Sie die Dateien parameters.yml, config.yml und sofern verwendet die mapbender.yml
# sofern Sie eigene Templates angelegt haben, vergeleichen Sie diese mit der neuen Mapbender Version
# sofern Sie Vorschaubilder hochgeladen haben: kopieren Sie diese von der alten Version wieder nach mapbender3/web/uploads
# sofern Sie eigene Druckvorlagen verwenden: kopieren Sie diese wieder nach mapbender3/app/Resources/MapbenderPrintBundle/templates/



# Setzen Sie die Schreibrechte für Besitzer (u), Gruppe (g) und Andere (a). Weisen Sie die Skripte dem Apache User (www-data) zu.
sudo chmod -R uga+r /var/www/mapbender3
sudo chown -R www-data:www-data /var/www/mapbender3

Aktualisieren Sie Ihre Mapbender Datenbank

cd /var/www/mapbender3/

# Beim Update von der Version 3.0.3.x nach 3.0.4.0 auf PostgreSQL müssen Sie das folgende SQL auf der Datenbank absetzen,
# bevor Sie app/console doctrine:schema:update --force ausführen.
# ALTER TABLE fom_profile_basic DROP CONSTRAINT fom_profile_basic_pkey;

app/console doctrine:schema:update --dump-sql
app/console doctrine:schema:update --force
app/console assets:install web

# Setzen Sie die Schreibrechte für Besitzer (u), Gruppe (g) und Andere (a). Weisen Sie die Skripte dem Apache User (www-data) zu.
sudo chmod -R ugo+r /var/www/mapbender3
sudo chown -R www-data:www-data /var/www/mapbender3

# Sie benötigen Schreibrechte für die Verzeichnisse app/cache und app/logs.
sudo chmod -R ug+w /var/www/mapbender3/app/cache
sudo chmod -R ug+w /var/www/mapbender3/app/logs
sudo chmod -R ug+w /var/www/mapbender3/web/assets
sudo chmod -R ug+w /var/www/mapbender3/web/uploads