здгафствуйце, дагагия дгузья. сиводня мы будзем капацца ф слановам дзирьме. Патчиму ? Патамушта постргысыкылы. Мы паставим и настроем ривирсивный искациль абйектаф па каардзинатам ака nominatim.
как ви узе дагадалес, длйа этава нам панадабицца линугз, прйамыйе руки и парсер падонкафскава езыка.
экскременты будем правадиць на el7.
1. паставим зильонава слоника и зильоную жабу. ну и посткис
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
2. паставим дивэлапирскуйу хуйню
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
3. паставим кусок гавна версии 7.0
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
4. паставим собнанныйе вот эцими руками осцээмтулзы
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
5. ставим альбом Оззи Озборна 1995 года - без него никак
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/
6. несем братишке покушать запускаим зилёнава слоника
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
7. Собссна качаем и настраиваем наминацим
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
8. Импарцируем (и не забывайэм - ни большы трьох литрау алкахоля на рыла)
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
9. пьом литр вотки, лицим на кипр, прасыпаимса там, запускаем гэпээс лакатар, апридзиляем каардинаты, аткрываем наш сервер па http://server/nominatim и узнаем, гдзе мы. татчнее не узнаем, патамушта:
1. апач не запущен
2. фаерволлд не патушен
3. селинукс не атключон