Diese Instanz dient auschließlich zur Einrichtung des Nominatim-Servers als Default-Image, welches später im Schnellverfahren aufgesetzt werden kann.
- Neue Amazon EC2 Instanz erstellen
- Unter Community AMIs ein Debian Jessie Image auswählen => ami-30e01d5f (weitere Images)
- Als Instanztyp wähle t2.medium (kleinsmögliche Instanz für eine sichere Installation)
- Alle weiteren Grundeinstellungen bestätigen, bis auf Configure Security Group
- hier die Regel HTTP hinzufügen
- wieder alles bestätigen und zum Abschluss noch die Schlüsseldatei für den SSH-Zugriff erzeugen
- via SSH einloggen (Schlüsseldatei nicht vergessen)
- Setup-Script herunterladen und (WICHTIG: nur auf einer neuen Instanz s.o.) ausführen
cd /home/admin
wget https://raw.githubusercontent.com/MS-WebDev/nominatim-aws-ec2/master/setup-default-image.sh
chmod +x ./setup-default-image.sh
./setup-default-image.sh
- via SSH einloggen (Schlüsseldatei nicht vergessen)
- Debian auf den neusten Stand bringen
sudo apt-get clean && sudo apt-get update && sudo apt-get dist-upgrade
- Alle Abhängigkeiten für Nominatim installieren
sudo apt-get install build-essential libxml2-dev libpq-dev libbz2-dev libtool automake libproj-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libexpat-dev gcc proj-bin libgeos-c1 libgeos++-dev libexpat-dev php5 php-pear php5-pgsql php5-json php-db libapache2-mod-php5 postgresql postgis postgresql-contrib postgresql-9.4-postgis-2.1 postgresql-server-dev-9.4 wget
- Osmosis installieren
sudo apt-get install osmosis
- Nominatim installieren
# Herunterladen und entpacken
wget http://www.nominatim.org/release/Nominatim-2.5.1.tar.bz2
tar xvf Nominatim-2.5.1.tar.bz2
# Kompilieren
cd Nominatim-2.5.1
./configure
make
# Zugriffsrechte ändern => module
chmod +x ~/Nominatim-2.5.1
chmod +x ~/Nominatim-2.5.1/module
- PostgreSql Setup
# Passwort setzen
sudo -u postgres psql -c "ALTER USER postgres PASSWORD '00000';"
# user www-data zu Psql hinzufügen
createuser -SDR www-data
- Webseite einrichten
sudo mkdir -m 755 /var/www/html/nominatim
sudo chown admin /var/www/html/nominatim
# Im Ordner: Nominatim-2.5.1
./utils/setup.php --create-website /var/www/html/nominatim
- Nominatim Einstellungen setzen (./settings/local.php)
nano ./settings/local.php
<?php
@define('CONST_Database_DSN', 'pgsql://postgres:00000@localhost:5432/nom_sl');
@define('CONST_Postgresql_Version', '9.4');
@define('CONST_Website_BaseURL', 'http://public-ip/nominatim/');
# Update-Einstellungen abgestimmt auf geofabrik.de
@define('CONST_Replication_Url', 'http://download.geofabrik.de/europe/germany/saarland-updates');
@define('CONST_Replication_MaxInterval', '40000');
@define('CONST_Replication_Update_Interval', '86400');
@define('CONST_Replication_Recheck_Interval', '900');
# Extrakt herunterladen
wget -N http://download.geofabrik.de/europe/germany/saarland-latest.osm.pbf -P /home/admin/Nominatim-2.5.1/data
# Import starten
./utils/setup.php --osm-file ./data/saarland-latest.osm.pbf --all
- Nachdem das Test-Extract ohne Fehler importiert wurde, kann die Suche über http://public-ip/nominatim getestet werden
# Test-Datenbank entfernen
sudo -u postgres psql -c "DROP DATABASE nom_sl;"
# Abhängige Dateien entfernen
rm /home/admin/Nominatim-2.5.1/settings/state.txt
rm /home/admin/Nominatim-2.5.1/settings/configuration.txt
rm /home/admin/Nominatim-2.5.1/settings/download.lock
- In der AWS Konsole diese Instanz auswählen
- über Actions kann jetzt ein Image erstellt werden
- Image name: nom-2.5.1-default (frei wählbar)
- WICHTIG: In der Spalte "Delete on Termination" muss der Haken entfernt werden, sonst wird beim Löschen der Instanz dieses Image ebenfalls gelöscht
- Fertig: dieses Image kann jetzt auf ein beliebigen Instanztyp angewendet werden. Für große Imports bieten sich die R3-Typen an
- Datenbank entfernen
sudo -u postgres psql -c "DROP DATABASE db_name;"
- Nominatim-Einstellungen ändern (local.php)
nano /home/admin/Nominatim-2.5.1/settings/local.php
- PostgreSql Befehle
# Default Postgresql.conf laden (wichtige Variablen oben)
sudo wget --output-document=/etc/postgresql/9.4/main/postgresql.conf https://raw.githubusercontent.com/MS-WebDev/nominatim-aws-ec2/master/postgresql.conf
# PostgreSql Konfiguration bearbeiten
sudo nano /etc/postgresql/9.4/main/postgresql.conf
# Restart PSQL-Server
sudo service postgresql restart