La prima cosa da fare prima del processo di installazione e configurazione, è scegliere la macchina server (fisica o virtuale) su cui effettuare l'installazione.
Si consiglia, per le applicazioni di produzione, l'utilizzo di un server con SSD, ed un grande quantitativo di RAM, con processore almeno dual core: per questo articolo, per il quale non sussistevano vincoli di rapidità di risposta, è stata utilizzata una droplet con 2 GB di RAM e 40 GB SSD su DigitalOcean (l'indirizzo IP assegnato al momento della creazione della macchina di test usata per questa guida è 104.131.34.188, e lo troverete ripetuto un po’ ovunque): questi devono essere considerati requisiti minimi per un server di sviluppo, al di sotto dei quali non conviene nemmeno iniziare.
Dopo avere scelto il server, non resta che installare i componenti principali necessari per realizzare un tile server OpenStreetMap:
Componente | Descrizione |
---|---|
mod_tile | Modulo di Apache che si occupa di servire i tile e di effettuarne il caching |
renderd | Fornisce un sistema di code con priorità per l'effettuazione del rendering dei tile |
mapnik | La libreria software usata da renderd per il rendering dei tile |
Database | Un database PostgreSQL/PostGIS |
osm2pgsql | Tool che converte i dati di OpenStreetMap in un formato idoneo alla memorizzazione in un database PostgreSQL/PostGIS |
Poichè quasi tutti questi software saranno compilati dai sorgenti, è opportuno verificare che siano installate una serie di dipendenze essenziali. Su Ubuntu si possono installare con apt:
sudo apt-get install libboost-all-dev subversion git-core tar unzip wget bzip2 build-essential autoconf libtool libxml2-dev libgeos-dev libgeos++-dev libpq-dev libbz2-dev libproj-dev munin-node munin libprotobuf-c0-dev protobuf-c-compiler libfreetype6-dev libpng12-dev libtiff4-dev libicu-dev libgdal-dev libcairo-dev libcairomm-1.0-dev apache2 apache2-dev libagg-dev liblua5.2-dev ttf-unifont lua5.1 liblua5.1-dev node-carto
Installare PostgreSQL/PostGIS
Le versioni pacchettizzate di PostgreSQL e PostGIS su Ubuntu possono essere installate come segue:
sudo apt-get install postgresql postgresql-contrib postgis postgresql-9.3-postgis-2.1
Accediamo alla shell di Postgres con il comando sudo -u postgres -i
, e creiamo un database PostGIS, chiamato gis. Il nome utente username può essere scelto a piacimento, e deve coincidere con quello dell'utente che effettuerà il rendering con Mapnik.
createuser username # rispondere sì alla richiesta di privilegi superuser
createdb -E UTF8 -O username gis
exit
Creiamo quindi l'utenza UNIX corrispondente, come segue:
sudo useradd -m username
sudo passwd username
Dopo la creazione dell’utente, lo si imposta PostGIS sul database PostgreSQL:
sudo -u postgres psql
\c gis
CREATE EXTENSION postgis;
ALTER TABLE geometry_columns OWNER TO username;
ALTER TABLE spatial_ref_sys OWNER TO username;
\q
exit
Installare osm2pgsql
Per installare osm2pgsql è opportuno partire dall'istantanea più recente del repository git:
mkdir ~/src
cd ~/src
git clone git://github.com/openstreetmap/osm2pgsql.git
cd osm2pgsql
./autogen.sh
./configure
make
sudo make install
Installare la libreria Mapnik
La libreria Mapnik viene utilizzata per il rendering dei dati OpenStreetMap nei tile usati dalle applicazioni.
Anche in questo caso è opportuno compilare a partire da git:
cd ~/src
git clone git://github.com/mapnik/mapnik
cd mapnik
git branch 2.2 origin/2.2.x
git checkout 2.2
python scons/scons.py configure INPUT_PLUGINS=all OPTIMIZATION=3 SYSTEM_FONTS=/usr/share/fonts/truetype/
make
sudo make install
sudo ldconfig
Installare mod_tile e renderd
Non resta quindi che compilare mod_tile e renderd dai sorgenti:
cd ~/src
git clone git://github.com/openstreetmap/mod_tile.git
cd mod_tile
./autogen.sh
./configure
make
sudo make install
sudo make install-mod_tile
sudo ldconfig