Systemvoraussetzungen

Bitte prüfen Sie vor der Installation, ob alle Voraussetzungen bzgl. Hardware und Software erfüllt sind.

Hardware

Die notwendigen Hardwarevoraussetzungen sind stark abhängig vom gewünschten Landkartenumfang.
Um bspw. eine Weltkarte bereitstellen zu können, sind 32 GB RAM oder mehr und ca. 800 GB freier Festplattenspeicher notwendig.
Im Zweifelsfall sollte besser mehr Festplattenspeicher eingeplant werden, da sich die Datenmenge beim initialen Import stark vergrößert.

Software

Die Basis für das Geocodierungswerkzeugs Nominatim bildet ein Linux Betriebssystem. Zu empfehlen ist mindestens Ubuntu 16.04.
Diese Installationsanleitung geht von einem vollständig neu installierten Betriebssystem aus. Die notwendigen Systemkonfigurationen werden im Folgenden beschrieben.

Installationsvorbereitung

Um die folgenden Anweisungen ausführen zu können, öffnen Sie bitte die Befehlskonsole (LX-Terminal).

Installation erforderlicher Softwarepakete

Das Betriebssystem sollte auf dem neusten Stand sein. Um dies zu prüfen und ggf. zu aktualisieren führen Sie bitte folgende Anweisung aus:

sudo apt-get update -qq


Anschließend können Sie mit folgender Anweisung die erforderlichen Softwarepakete installieren:

sudo apt-get install -y build-essential cmake g++ libboost-dev libboost-system-dev \libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev \libbz2-dev libpq-dev libgeos-dev libgeos++-dev libproj-dev \postgresql-server-dev-9.5 postgresql-9.5-postgis-2.2 postgresql-contrib-9.5 \apache2 php php-pgsql libapache2-mod-php php-pear php-db \php-intl git 

Benötigen Sie zusätzlich eine Testumgebung so sind weitere Softwarepakete notwendig. Diese installieren Sie mit folgender Anweisung:

sudo apt-get install -y python3-dev python3-pip python3-psycopg2 python3-tidylib phpunit
pip3 install --user behave nose # urllib3 
sudo pear install PHP_CodeSniffer


Einrichten der Systemkonfigurationen

Hinweis: Die folgenden Schritte sind zur Konfiguration einer neuen Installation von Ubuntu zur Nutzung von Nominatim. Möglicherweise können sie einige der folgenden Schritte überspringen, wenn Sie das Betriebssystem bereits konfiguriert haben.
Nominatim steht als globaler Service auf dem Server bereit. Aus diesem Grund ist es sinnvoll hierfür einen eigenen User-Account anzulegen. In der folgenden Bedingungen angenommen:

  • Username: nominatim
  • Installationsverzeichnis: /svr/nominatim

Mit der folgenden Anweisung werden das Installationsverzeichnis und der User-Account angelegt:

sudo useradd -d /srv/nominatim -s /bin/bash -m nominatim 

Um den Anweisungen dieses Handbuchs weiter folgen zu können, müssen Sie nun den Username und das Verzeichnis exportieren:

export USERNAME=nominatim
export USERHOME=/srv/nominatim

Stellen Sie bitte sicher, dass Systemserver vom angelegten Verzeichnis lesen können:
chmod a+x $USERHOME
Bitte führen Sie die nun folgenden Installationsschritte nicht als „root-User" aus, da die hier angegebenen Datenbankanweisungen sonst nicht funktionieren!

Einrichten der Datenbank PostgreSQL

Um während des Installationsprozesses die Hardware möglichst effizient zu nutzen, können einige Feineinstellungen der Datenbankkonfiguration durchgeführt werden.
Die Datenbankkonfiguration sollten Sie in folgendem Verzeichnis finden:  /etc/postgresql/9.5/main/postgresql.conf
Die nachfolgenden Parametereinstellungen basieren auf einem Server mit 32 GB RAM. Bitte passen Sie die Speicherverteilung an Ihre Gegebenheiten an.

shared_buffers (2GB)
maintenance_work_mem (10GB)
work_mem (50MB)
effective_cache_size (24GB)
synchronous_commit = off
checkpoint_segments = 100 # only for postgresql <= 9.4
checkpoint_timeout = 10min
checkpoint_completion_target = 0.9

Für den initialen Import des Kartenmaterials sollten zusätzlich folgende Parametereinstellungen vorgenommen werden:

fsync = off 
full_page_writes = off


Nach erfolgreichem Import ist es wichtig, die zuletzt aufgeführten Parameter wieder auf die ursprünglichen Werte zurückzusetzen. Andernfalls besteht die Gefahr von inkonsistenten Datenbeständen.
Um die Einstellungen zu übernehmen starten Sie bitte die Datenbank neu:

sudo systemctl restart postgresql


Abschließend werden nun zwei PostgreSQL-User angelegt. Einen um den Import durchzuführen und einen zweiten für den Webserver, welcher lediglich lesend auf die Datenbank zugreifen soll:


sudo -u postgres createuser -s $USERNAME
sudo -u postgres createuser www-data

Einrichten des Apache Webservers

Für das Websiteverzeichnis ist ein Pseudonym (Alias) notwendig. Dieses wird der Apache Webserverkonfiguration hinzugefügt. Weiterhin erhält der Webserver separate Einstellungen für Nominatim
sudo tee /etc/apache2/conf-available/nominatim.conf << EOFAPACHECONF
<Directory "$USERHOME/Nominatim/build/website">
Options FollowSymLinks MultiViews
AddType text/html .php
DirectoryIndex search.php
Require all granted
</Directory>
Alias /nominatim $USERHOME/Nominatim/build/website
EOFAPACHECONF
Übernehmen Sie nun die vorgenommenen Einstellungen und starten sie den Webserver neu:
sudo a2enconf nominatim
sudo systemctl restart apache2

Installation Nominatim

Systemaufbau und Einrichtung

Laden Sie das Quellcodepaket für das aktuellste Nominatim-Release herunter, entpacken es und wechseln dann in das Quellcodeverzeichnis:
cd $USERHOME
wget http://www.nominatim.org/release/Nominatim-3.0.1.tar.bz2
tar xf Nominatim-3.0.1.tar.bz2
cd Nominatim-3.0.1
Der Quellcode muss in einem separaten Verzeichnis aufgebaut werden. Erstellen Sie nun dieses Verzeichnis. Anschließend werden dort die Einstellungen und die eigentliche Installation von Nominatim ausgeführt.
mkdir build
cd build
cmake $USERHOME/Nominatim
make
Abschließend ist eine Konfigurationsdatei zu erstellen. Diese zeigt Nominatim wo der Webserver erreichbar ist.
tee settings/local.php << EOF
<?php
@define('CONST_Website_BaseURL', '/nominatim/');
EOF
Nominatim ist nun einsatzbereit. Der Import von Kartenmaterial kann nun erfolgen.

Import von Kartenmaterial

Nachfolgend wird der Aufbau der Datenbasis für Nominatim durch den Import von OpenStreetMap-Kartenmaterial beschrieben. Weiterhin enthält diese Beschreibung auch die Einrichtung des automatischen Updateservices.
Voraussetzung für das Importieren der Datenbasis ist die erfolgreiche Installation der eigentlichen Nominatimsoftwaren.

Optimierung der Basiseinstellungen

Sie möchten eine große Datenbasis, wie bspw. Europa oder Nordamerika importieren, dann sollten Sie in den Einstellungen sog. Flatnode storage zulassen. Verzweigen Sie hierfür in folgendes Verzeichnis:
settings/local.php
Dort fügen Sie folgende Einstellung hinzu:
Ersetzten Sie bitte den zweiten Teil „/path/to/flatnode.file" durch ein passendes, existierendes Systemverzeichnis.
@define('CONST_Osm2pgsql_Flatnode_File', '/path/to/flatnode.file');

Initialer Import der Daten

WICHITG: Testen Sie den Import zunächst mit einem kleinen Kartenausschnitt, bspw. von http://download.geofabrik.de/
Mit der folgenden Anweisung laden Sie die OpenStreeMap Daten herunter und starten den Import:
./utils/setup.php --osm-file <your data




file> -all [-osm2pgsql-cache 28000] 2>&1 | tee setup.log





Der Parameter --osm2pgsql-cache ist optional jedoch für sehr große Karten, wie die Weltkarte, zu empfehlen. Dieser Parameter steuert die node cache Größe für den Import von osm2pgsql (siehe Hilfe osm2pgsql: -C Parameter). Für den Import der gesamten Weltkarte werden 28 GB empfohlen. Passen Sie verfügbares RAM an, um Schwankungen zu vermeiden. Geben Sie jedoch max. 2/3 des RAMs für osm2pgsql frei.


Laden zusätzlicher Datensätze

Die folgende Anweisung erzeugt zusätzliche Einträge für POI-Suche:
./utils/specialphrases.php --wiki-import > specialphrases.sql
psql -d nominatim -f specialphrases.sql

Update-Service einrichten

Um die Daten stets aktuell zu halten ist die Einrichtung eines automatischen Update-Services empfehlenswert.
Folgende Anweisung gibt Ihnen Auskunft über die verschiedenen Methoden zur Einrichtung des Updat-Services:
./utils/update.php --help
Nachfolgend wird die Einrichtung eines Update-Services mit Hilfe der aktuellsten Version von Pyosmium beschrieben.

Installation von Pyosmium

Die Installation via „pip" ist zu empfehlen:
pip install --user osmium
Nominatim benötigt das Tool pyosmium-get-updates, welches mit der Installation zugänglich wird. Damit Nominatim darauf zugreifen kann verzweigen Sie bitte in folgendes Verzeichnis:
settings/local.php
Dort fügen Sie nun folgende Einstellung hinzu:
Ersetzten Sie den Parameter user durch Ihren Usernamen.
@define('CONST_Pyosmium_Binary', '/home/user/.local/bin/pyosmium-get-changes');

Updateprozess einrichten

Nun werden die Updates initialisiert. Die Standardkonfiguration von Nominatim lädt minütlichen Änderungen (update using the global minutely diffs).
Möchten Sie eine andere Updatequelle nutzen, so sind Anpassungen in folgendem Verzeichnis durchzuführen:
settings/local.php
Wenn Sie beispielsweise tägliche Updates für den Länderausschnitt Irland von geofabrik.de einrichten möchten, fügen Sie im oben genannten Verzeichnis folgende Einstellungen hinzu:
// base URL of the replication service
@define('CONST_Replication_Url', 'http://download.geofabrik.de/europe/ireland-and-northern-ireland-updates');
// How often upstream publishes diffs
@define('CONST_Replication_Update_Interval', '86400');
// How long to sleep if no update found yet
@define('CONST_Replication_Recheck_Interval', '900');
Um den Updateprozess zu starten, führen Sie bitte folgende Anweisung aus:
./utils/update.php --init-updates
Diese Anweisung gibt das Stardatum des Updates aus. Bitte prüfen Sie dieses Datum auf Plausibilität. Sollten Sie die Updatequelle ändern, ist es notwendig, die oben genannte Anweisung erneut auszuführen, um den Updateprozess korrekt zu starten.

Automatisches Update der Kartendaten in Nominatim

Die folgende Anweisung hält Ihre Datenbasis in Nominatim stetig aktuell:
./utils/update.php --import-osmosis-all
(Hinweis: Aus Kompatibilitätsgründen wurde der ursprüngliche Name „import-osmosis-all" verwendet. Osmosis wird nicht für den Updateservice benötigt – der Prozess wird von „Pyosmium" durchgeführt.)

Weiterführende Quellen

http://nominatim.org/release-docs/latest/Installation
http://nominatim.org/release-docs/latest/Install-on-Ubuntu-16
http://nominatim.org/release-docs/latest/Import-and-Update
https://switch2osm.org/serving-tiles/building-a-tile-server-from-packages/
Kostenfreier Download von Kartenmaterialien bei http://download.geofabrik.de/


  • Keine Stichwörter
>