User Tools

Site Tools


huy:osmnominatim

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

huy:osmnominatim [2018/04/22 12:43] (current)
slayer created
Line 1: Line 1:
 +здгафствуйце,​ дагагия дгузья. сиводня мы будзем капацца ф слановам дзирьме. Патчиму ? Патамушта постргысыкылы. Мы паставим и настроем ривирсивный искациль абйектаф па каардзинатам ака nominatim.
 +
 +как ви узе дагадалес,​ длйа этава нам панадабицца линугз,​ прйамыйе руки и парсер падонкафскава езыка.
 +
 +экскременты будем правадиць на el7.
 +
 +1. паставим зильонава слоника и зильоную жабу. ну и посткис
 +<code bash>
 +yum install https://​download.postgresql.org/​pub/​repos/​yum/​10/​redhat/​rhel-7-x86_64/​pgdg-redhat10-10-2.noarch.rpm
 +
 +zfs create -o compression=lz4 rpool/pgsql
 +zfs set mountpoint=/​var/​lib/​pgsql rpool/pgsql
 +
 +yum -y install java sudo epel-release postgresql10-contrib postgis24_10-client.x86_64 postgis24_10-devel.x86_64 postgis24_10-utils.x86_64 postgresql10-server
 +</​code>​
 +
 +2. паставим дивэлапирскуйу хуйню
 +<code bash>
 +yum -y install git cmake make gcc gcc-c++ libtool policycoreutils-python \
 +                    libpqxx-devel proj-epsg \
 +                    bzip2-devel proj-devel geos-devel libxml2-devel boost-devel expat-devel zlib-devel
 +</​code>​
 +
 +3. паставим кусок гавна версии 7.0
 +
 +<code bash>
 +yum -y install php70w-pdo php70w-mcrypt php70w-xml php70w-fpm php70w-common php70w-imap php70w-tidy php70w-mysql php70w-bcmath php70w-mbstring php70w-pear php70w-gd php70w-soap php70w-cli php70w-xmlrpc php70w-process php70w-devel php70w-pecl-memcache gcc make php70-ioncube-loader git zlib-devel php70w-opcache php70w-pgsql php70w php70w-pear php-pear-DB php70w-intl
 +</​code>​
 +
 +4. паставим собнанныйе вот эцими руками осцээмтулзы
 +
 +<code bash>
 +yum -y install http://​otov.shop/​rpms/​x86_64/​osmctools-0.7-2.el7.centos.x86_64.rpm
 +/​usr/​bin/​osmconvert
 +/​usr/​bin/​osmfilter
 +/​usr/​bin/​osmupdate
 +</​code>​
 +
 +5. ставим альбом Оззи Озборна 1995 года - без него никак
 +<code bash>
 +mkdir -p /​srv/​osmosis
 +cd  /​srv/​osmosis
 +curl http://​bretth.dev.openstreetmap.org/​osmosis-build/​osmosis-latest.tgz | tar -zxf  -
 +ln -s /​srv/​osmosis/​bin/​osmosis /usr/bin/
 +</​code>​
 +
 +6. <​del>​несем братишке покушать</​del>​ запускаим зилёнава слоника
 +<code bash>
 +export PGSETUP_INITDB_OPTIONS="​-E UTF-8"
 +postgresql-10-setup initdb
 +systemctl enable postgresql-10
 +cat > /​var/​lib/​pgsql/​10/​data/​postgresql.conf << _EOF 
 +autovacuum = off
 +datestyle = 'iso, mdy'
 +default_text_search_config = '​pg_catalog.english'​
 +effective_cache_size = 64GB
 +effective_io_concurrency = 30   
 +fsync = off
 +lc_messages = '​en_US.UTF-8'​
 +lc_monetary = '​en_US.UTF-8'​
 +lc_numeric = '​en_US.UTF-8'​
 +lc_time = '​en_US.UTF-8' ​
 +log_filename = '​postgresql-%a.log'​
 +logging_collector = on  ​
 +log_rotation_age = 1d   
 +log_rotation_size = 0   
 +log_timezone = '​Europe/​Berlin'​
 +log_truncate_on_rotation = on   
 +max_connections = 300   
 +shared_buffers = 32GB   
 +synchronous_commit = off
 +temp_buffers = 100MB
 +timezone = '​Europe/​Berlin'​
 +wal_buffers = 16MB
 +work_mem = 1GB
 +_EOF
 +service postgresql-10 restart
 +</​code>​
 +
 +7. Собссна качаем и настраиваем наминацим
 +<code bash>
 +export USERHOME=/​srv/​nominatim
 +mkdir -p $USERHOME
 +sudo -u postgres createuser apache
 +sudo tee /​etc/​httpd/​conf.d/​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
 +
 +cd $USERHOME
 +git clone --recursive git://​github.com/​openstreetmap/​Nominatim.git
 +cd Nominatim
 +wget -O data/​country_osm_grid.sql.gz http://​www.nominatim.org/​data/​country_grid.sql.gz
 +mkdir build
 +cd build
 +cmake $USERHOME/​Nominatim
 +make
 +tee settings/​local.php << EOF
 +<?php
 + ​@define('​CONST_Database_Web_User',​ '​apache'​);​
 + ​@define('​CONST_Website_BaseURL',​ '/​nominatim/'​);​
 + ​@define('​CONST_Osm2pgsql_Flatnode_File',​ '/​var/​lib/​pgsql/​flatnode.file'​);​
 +EOF
 +</​code>​
 +
 +8. Импарцируем (и не забывайэм - ни большы трьох литрау алкахоля на рыла)
 +
 +<code bash>
 +zfs destroy rpool/temp
 +zfs create -o compression=lz4 rpool/temp
 +sudo -u postgres createuser apache
 +chown postgres:​postgres /rpool/temp
 +chown -R postgres:​postgres /​var/​lib/​pgsql
 +sudo -u postgres dropdb nominatim
 +cd /rpool/temp
 +
 +COUNTRIES="​europe/​andorra europe/​cyprus"​
 +for country in $COUNTRIES; do 
 + wget http://​download.geofabrik.de/​$country-latest.osm.pbf
 +done
 +
 +for i in `ls *.pbf|cut -d. -f1,2`;
 +do 
 + ​osmconvert $i.pbf -o=$i.o5m
 +done
 +osmconvert `ls *.o5m` -o=all.o5m
 +chown -R postgres:​postgres /​rpool/​temp/​
 +sudo -u postgres /​srv/​nominatim/​Nominatim/​build/​./​utils/​setup.php --osm-file /​rpool/​temp/​all.o5m --all --osm2pgsql-cache 28000
 +chown -R postgres:​postgres /​srv/​nominatim/​Nominatim
 +sudo -u postgres bash -x /​boot/​update-nominatim.sh
 +apachectl start
 +</​code>​
 +
 +9. пьом литр вотки, лицим на кипр, прасыпаимса там, запускаем гэпээс лакатар,​ апридзиляем каардинаты,​ аткрываем наш сервер па http://​server/​nominatim и узнаем,​ гдзе мы. татчнее не узнаем,​ патамушта:​
 +
 +1. апач не запущен
 +
 +2. фаерволлд не патушен
 +
 +3. селинукс не атключон
  
huy/osmnominatim.txt · Last modified: 2018/04/22 12:43 by slayer