Git-basierte Installation

Wenn Sie sich an der Mapbender3-Entwicklung beteiligen möchten oder aus anderen Gründen die Git Repositories für Mapbender3 verwenden, folgen Sie dieser Anleitung statt des normalen Downloads. Diese Anleitung basiert auf Ubuntu 12.04. Für andere Distributionen benötigen Sie vielleicht spezielle Pakete wie z.B. sphinx-common.

Prüfen Sie zuerst die Systemvoraussetzungen.

Für die Git-basierte Installation benötigen Sie:

  • git - schauen Sie sich das Dokument Quick primer on using Git an, um mit Git vertraut zu werden.
  • cURL - kommandozeilen basiertes Tool für die Übertragung von Daten über URL Syntax,unterstützt HTTP, HTTPS und mehr.
  • pear - PHP Erweiterung und Anwendungs-Repository.
  • Phing - Phing ist nicht GNU make; es ist ein PHP Projekt Build System oder Build-Werkzeug basierend auf Apache Ant.
  • php5-dev - Und natürlich die Dateien zur Entwicklung von PHP5-Modulen.

Klonen des Repositories

Klonen ist einfach, geben Sie das folgende Kommando auf Ihrer Shell ein:

git clone https://github.com/mapbender/mapbender-starter.git mapbender3
cd mapbender3

Falls Sie einen SSH Zugang haben, können Sie die SSH-URL verwenden: git@github.com:mapbender/mapbender-starter

Git-Branches und die Möglichkeiten

Sie haben mehrere Möglichkeiten, die Github Quellen auszuchecken:

  • master: Der master-Branch enthält die zuletzt veröffentlichte stabile Version.
  • Tags: Wir taggen die Versionen im Source-Code, so dass Sie auch die aktuelle und vorherige Versionen selbst auschecken können.
  • release/3.0.5: Der Release-Branch enthält die aktuellen Bugfixes, auf denen der nächste 3.0.5 Release aufbauen wird.
  • release/3.0.6: Dieser Release-Branch wird die zukünftige Version beinhalten und enthält die Fixes des 3.0.5 Branches und neue Funktionalitäten. Dieser Branch wird z.Z. nicht für den Einsatz empfohlen.
  • release/3.1: Dieser Branch wird die zukünftige Version 3.1 beinhalten inklusive neuer Funktionen für die zukünftige Mapbender 3.1 Version. Dieser Branch wird z.Z. nicht für den Einsatz empfohlen.

Daher können Sie unterschiedliche Versionen von Mapbender3 auschecken.

Wenn Sie die aktuelle Version haben möchten, checken Sie den Master aus, wie oben beschrieben.

Wenn Sie eine spezifische Version von Mapbender3 nutzen wollen, checken Sie einen Tag aus, z.B. die Version 3.0.5.3.:

git tag -l
git checkout v3.0.5.3

Wenn sie den aktuellen 3.0.5 Code haben möchten, der zu der nächsten 3.0.5.x Version werden wird, klonen Sie den release/3.0.5 Branch mit -b.

git clone https://github.com/mapbender/mapbender-starter.git -b release/3.0.5 mapbender3

Submodule abrufen

Die Starter-Applikation enthält nicht die Mapbender3 bundles, diese sind in einem eigenen Repository gespeichert und werden als Submodule in das Starter-Repository eingefügt. Rufen Sie das folgende Kommando im root-Verzeichnis ihres geklonten Repositories auf.

git submodule update --init --recursive

Composer

Mapbender3 benötigt weitere Bibliotheken für die Laufzeit-Abhängigkeiten, wie z.B. Symfony und Doctrine. Daher muss zuerst der Composer eingerichtet und ausgeführt werden (weitere Information unter http://getcomposer.org/download/):

cd application
curl -sS https://getcomposer.org/installer | php

Erzeugen Sie eine Konfigurationsdatei mit Namen parameters.yml. Kopieren Sie dazu die Datei application/app/config/parameters.yml.dist.

cp app/config/parameters.yml.dist app/config/parameters.yml

Zur Anpassung der parameters.yml lesen Sie bitte das Kapitel Anpassen der Konfigurationsdatei.

Laden Sie anschließend die Laufzeit-Umgebungen wie Symfony und Doctrine:

Sie können entweder composer install oder composer update ausführen.

./composer.phar install

Composer Install greift auf die Dateien composer.lock zu, die wir mitliefern und die feste Versionen der einzelnen Pakete zieht.

./composer.phar update

Composer update greift auf die Datei composer.json zu und lädt die jeweils aktuellen Versionszweige der Pakete, wie wir sie in der composer.json definiert haben.

Die nächsten Schritte der Installation

Folgen Sie nun den Schritten, die unter Installation beschrieben werden:

Hinweis: Beachten Sie dabei, dass Mapbender3 in dem git-basierten Aufbau über eines zusätzliches Verzeichnis application verfügt (mapbender3/application/...). Dieses zuätzliche Verzeichnis muss bei den Befehlen beachtet werden.

  • Anpassung der Konfigurationsdatei parameters.yml
  • Erzeugen der Datenbank
  • Erzeugen des Datenbank Schemas
  • Kopieren/Verlinken der Bundle’ Assets in das öffentliche web-Verzeichnis
  • Initialisierung des Rollen-Systems
  • Erzeugen des “root”-Benutzers
  • Einfügen der Projektions-Definitionen
  • Einfügen der Anwendungen aus der mapbender.yml in die Datenbank

Lernen Sie mehr über app/console

Die Symfony Console Komponenten ermöglichen es, kommandozeilen basierte Befehle zu erzeugen. Doctrine verfügt beispielsweise über einige kommandozeilen basierte Befehle, die Sie verwenden können.

Lesen Sie mehr in der Symfony Dokumentation über Console Commands.

Hier finden Sie einige Kommandos zum Auffinden von Informationen:

app/console                        - lists all assets
app/console help                   - Anzeige der Hilfe
app/console help list              - Anzeige der Hilfe für einzelne Kommandos
app/console doctrine               - Anzeige aller Funktionen von Doctrine
app/console mapbender              - Anzeige aller Funktionen von Mapbender
app/console help assets:install    - Anzeige der Hilfe zu speziellen Kommandos

Lernen Sie wie Sie eigene Elemente über app/console mapbender:generate:element erzeugen können How to create your own Element?.

Aktualisierung der Installation

Da die Entwicklungen voranschreiten, wollen Sie ihren Code aktuell halten.

Folgende Schritte müssen durchgeführt werden:

  • Holen Sie den Code vom mapbender-starter Repository
  • Aktualisieren Sie die Submodule
  • Aktualisieren Sie die Datenbank, um gegebenenfalls neue Strukturen (Tabellen, Spalten) zu erzeugen
cd mapbender-starter
git pull
git submodule update --init --recursive
cd application
./composer.phar update --dev
app/console doctrine:schema:update

Sphinx (Dokumentation)

Sphinx wird für die Dokumentation benötigt, die Sie gerade lesen. In Debian-basierten Systemen wird Sphinx folgendermaßen installiert.

sudo apt-get install python-sphinx

Sie finden die Mapbender3 Dokumentation auf github unter mapbender-documentation. Sie könnnen den Klon über den Befehl holen:

git clone git://github.com/mapbender/mapbender-documentation

Entwickler mit Schreibrechten müssen die SSH-URL verwenden: git@github.com:mapbender/mapbender-documentation

Lesen Sie mehr über How to write Mapbender3 Documentation?.

ApiGen

ApiGen ist der API-Dokumentations-Generator erster Wahl. Es wird mit Pear (php-pear) installiert:

sudo pear install pear.apigen.org/apigen

Lesen Sie mehr in How to write Mapbender3 Documentation?.

Troubleshooting

  • Die ApiGen-Bestandteile laufen nur mit neueren Versionen von Phing (>= 2.4.12), welches die Pear-Bibliothek benötigt. Zunächst muss Pear installiert werden. Hier wird ein Debian-basiertes System verwendet:
sudo apt-get install php-pear

Dann muss Pear gezeigt werden, wie ein Autodiscover seiner Repositories erzeugt wird. Vorsichtshalber wird ein Update von Pear gemacht.

sudo pear config-set auto_discover 1

sudo pear upgrade-all
  Enable full APC compatibility [yes] : yes
  Enable internal debugging in APCu [no] : yes

Dann wird Phing installiert:

sudo pear channel-discover pear.phing.info
sudo pear install phing/phing

Testen Sie die Phing Version mit:

phing -v