Un resumen de los pasos que se sigen para implementar el mapa de OSM, basado en una documentación que saco geoBolivia hace algunos años atrás.
- S.O.: Linux Debian 9
- Procesador: core i3 (dos núcleos)
- RAM: 4Gb
- HD: 250 GB
apt-get install unzip curl dh-autoreconf
apt-get install postgresql-9.6 postgresql-9.6-postgis-6.1 postgresql-contrib-9.6
su postgres -
createuser -P -s -e osm
Asumiendo que la dirección IP del servidor es ’192.168.0.1’, añadir a la lista de direcciones junto con ’localhost’ para poder acceder a la base de datos local o remotamente.
nano /etc/postgresql/9.6/main/postgresql.conf
listen_addresses = '*'
Cambiamos los derechos de acceso al servidor PostGreSQL para permitir el acceso del usuario osm desde otra maquina, por ejemplo ’192.168.0.2’, y también desde el propio servidor ’127.0.0.1’.
nano -c /etc/postgresql/9.6/main/pg_hba.conf
#local all postgres peer
local all postgres ident
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
#local all all peer
local all all md5
#IPv4 local connections:
host all osm 127.0.0.1/32 md5
host all osm 192.168.0.2/32 md5
service postgresql restart
service postgresql reload
Permite la importación de archivos .osm u osm.pbf dentro de una DB postgresql
apt-get install build-essential git mercurial libgeos-dev
Es una DB open source NoSQL, no soporta el modelo relacional, ni sql e índices
mkdir /opt/library && cd /opt/library
git clone https://github.com/danielquisbert/leveldb.git
cd leveldb
make
cp -r include/leveldb /usr/include/
cp out-shared/libleveldb.* /usr/lib/
ldconfig
cd /opt
wget -c https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
tar -xvf go1.8.3.linux-amd64.tar.gz
cp -r go /usr/local/
nano /root/.profile
export PATH=$PATH:/usr/local/go/bin
Es es un contenedor para LevelDB. Configurar variables de entorno “CGO_CFLAGS, CGO_LDFLAGS” que apunten al directorio donde se encuentra instalado levelDB. Seteamos el contenedor CGO_CFLAGS="-I/opt/library/leveldb/include" CGO_LDFLAGS="-L/opt/library/leveldb"
go get github.com/jmhodges/levigo
go get github.com/mattn/go-sqlite3
cd /opt/library
git clone https://github.com/danielquisbert/protobuf.git
cd protobuf
./autogen.sh
./configure
make
make install
go get -u github.com/golang/protobuf/protoc-gen-go
Es el controlador postgres para el lenguaje Go
go get github.com/lib/pq
mkdir /opt/imposm && cd /opt/imposm
export GOPATH=$PWD
go get github.com/omniscale/imposm3
go install github.com/omniscale/imposm3/cmd/imposm3
echo $GOPATH
El resultado debe ser: /opt/imposm
cp -r /opt/imposm/* /usr/local/go/
imposm3 version
su postgres -
createuser -P -s -e imposmuser
createdb imposm -O imposmuser
nano -c /etc/postgresql/9.6/main/pg_hba.conf
service postgresql restart
service postgresql reload
su postgres -
createlang -h 127.0.0.1 -U imposmuser plpgsql imposm
psql -h 127.0.0.1 -U imposmuser -d imposm -f /usr/share/postgresql/9.6/contrib/postgis-3.1/postgis.sql
psql -h 127.0.0.1 -U imposmuser -d imposm -f /usr/share/postgresql/9.6/contrib/postgis-3.1/spatial_ref_sys.sql
mkdir -p /opt/OSM/imposm && cd /opt/OSM
mkdir /opt/OSM/cache
imposm3 import -config config-imposm.json -appendcache -deployproduction -read ../south-america-latest.osm.pbf -write
apt-get install libpng12-0 libfreetype6 libgd2-xpm-dev zlib-gst libproj0 libcurl3 libagg-dev libgdal1-dev libgeotiff-dev libjpeg-dev libgeos-dev libxml2-dev libpq-dev libgd2-xpm-dev libpng12-dev libfreetype6-dev zlib1g-dev libproj-dev gdal-bin libgdal-dev libgdal1-dev libfcgi-dev cmake libfribidi-bin libharfbuzz-dev libcairo-dev swig
mkdir -p /opt/mapserver && cd /opt/mapserver
wget -c http://download.osgeo.org/mapserver/mapserver-7.0.5.tar.gz
tar -xvf mapserver-7.0.5.tar.gz
cd mapserver-7.0.5
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt \
-DCMAKE_PREFIX_PATH=/usr/local:/opt \
-DWITH_CLIENT_WFS=ON \
-DWITH_CLIENT_WMS=ON \
-DWITH_CURL=ON \
-DWITH_SOS=ON \
-DWITH_FRIBIDI=0 \
-DWITH_HARFBUZZ=0 \
../ >../configure.out.txt
make
make install
cd /opt/OSM
git clone https://github.com/danielquisbert/basemaps.git
git branch --track 6.2 origin/branch-6-2
git checkout 6.2
apt-get install -y apache2 apache2-mpm-worker libapache2-mod-fastcgi
a2enmod actions fastcgi alias
apt-get install libapache2-mod-php7.0 php7-common php7-cli php7-fpm php7.0
cp /opt/bin/mapserv /usr/lib/cgi-bin/
mkdir /tmp/ms_tmp
chmod 777 /tmp/ms_tmp
nano /etc/rc.local
mkdir /tmp/ms_tmp
chmod 777 /tmp/ms_tmp
http://localhost/cgi-bin/mapserv?map=/opt/OSM/basemaps/osm-google.map&mode=browse&template=openlayers&layers=all