LoginSignup
5
6

More than 5 years have passed since last update.

CentOS7にOpenStreetMap入れる

Posted at

本ポストは
 https://switch2osm.org/serving-tiles/manually-building-a-tile-server-14-04/
の焼き直しです。
とりあえず私はコレで動きましたってことで。

OSについて

CentOS7で適当にセットアップしました
※ユーザー名はosmとしています

必要なソフトウエア群をインストール

yum -y install epel-release
yum -y update
yum -y install postgresql-server postgresql-contrib postgresql-devel postgis postgis-utils git make automake gcc gcc-c++ libtool policycoreutils-python php-pgsql php php-pear php-pear-DB libpqxx-devel proj-epsg bzip2-devel bzip2 proj-devel geos-devel libxml2-devel protobuf-c-devel lua-devel boost-devel expat-devel cmake httpd-devel freetype-devel libtool-ltdl-devel libpng-devel libtiff-devel libicu-devel libjpeg-devel libcurl-devel cairo-devel pycairo-devel harfbuzz-devel ipa*fonts vlgothic*fonts unzip npm wget
npm -g install carto

DBのセットアップ

sudo postgresql-setup initdb
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo -u postgres createuser -s osm
sudo -u postgres createuser apache
sudo -u postgres createdb -E UTF8 -O osm gis
sudo -u postgres psql
\c gis
CREATE EXTENSION postgis;
ALTER TABLE geometry_columns OWNER TO osm;
ALTER TABLE spatial_ref_sys OWNER TO osm;
\q

nominatimのmake

su -
cd /srv
tar xvf /home/osm/Nominatim-2.4.0.tar.bz2
mv Nominatim-2.4.0 Nominatim && cd Nominatim && ./configure && make

vi setting/setting.php

下記に変えた

   @define('CONST_Database_DSN', 'pgsql://@/osm');
   @define('CONST_Database_Web_User', 'apache');
   @define('CONST_Postgresql_Version', '9.2');
   @define('CONST_Postgis_Version', '2.0');
   @define('CONST_Website_BaseURL', 'http://'.php_uname('n').'/osm/');

semanage fcontext -a -t httpd_sys_content_t "/srv/Nominatim/(website|lib|settings)(/.*)?"
semanage fcontext -a -t lib_t "/srv/Nominatim/module/nominatim.so"
restorecon -R -v /srv/Nominatim

osmユーザーで
nohup /srv/Nominatim/utils/setup.php --osm-file /tmp/japan-latest.osm.pbf --all --osm2pgsql-cache 6400 &

sudo mkdir -m 755 /var/www/html/osm
sudo chown osm /var/www/html/osm
/srv/Nominatim/utils/setup.php --create-website /var/www/html/osm

/etc/httpd/conf.d/osm.conf

  <Directory "/var/www/html/osm/">
    Options FollowSymLinks MultiViews
    AddType text/html   .php     
  </Directory>

systemctl restart httpd

各種ソフトをcloneしておく

git clone https://github.com/openstreetmap/osm2pgsql.git
git clone https://github.com/mapnik/mapnik
git clone https://github.com/openstreetmap/mod_tile.git

osm2pgsqlのmake

cd osm2pgsql
mkdir build && cd build && cmake .. && make && sudo make install

mapnikのmake

cd mapnik
git checkout -b 2.3 origin/2.3.x
python scons/scons.py configure INPUT_PLUGINS=all OPTIMIZATION=3 SYSTEM_FONTS=/usr/share/fonts/ PREFIX=/usr
sudo make install
sudo ldconfig

pythonにて

import mapnik

でエラーが出ないことを確認する

module_tileのmake

cd mod_tile
./autogen.sh
./configure
sudo make install
sudo make install-mod_tile
sudo ldconfig

vi /etc/httpd/conf/httpd.conf

LoadModule tile_module modules/mod_tile.so
LoadTileConfigFile /usr/local/etc/renderd.conf
ModTileRenderdSocketName /var/run/renderd/renderd.sock
ModTileRequestTimeout 0
ModTileMissingRequestTimeout 30

地図styleの作成

sudo mkdir -p /usr/local/share/maps/style
sudo chown osm /usr/local/share/maps/style
cd /usr/local/share/maps/style
mkdir ne_10m_populated_places_simple
cd ne_10m_populated_places_simple
unzip ~/ne_10m_populated_places_simple.zip
cd ..
unzip ~/master.zip
unzip ~/simplified-land-polygons-complete-3857.zip
unzip ~/land-polygons-split-3857.zip
mkdir osm-bright-master/shp
mv land-polygons-split-3857 osm-bright-master/shp/
mv simplified-land-polygons-complete-3857 osm-bright-master/shp/
mv ne_10m_populated_places_simple osm-bright-master/shp/

cd osm-bright-master/shp/land-polygons-split-3857
shapeindex land_polygons.shp
cd ../simplified-land-polygons-complete-3857/
shapeindex simplified_land_polygons.shp
cd ../..

vi osm-bright/osm-bright.osm2pgsql.mml

cp ~/configure.py .
./make.py
cd ../OSMBright/
carto project.mml > OSMBright.xml

OSMBright.xmlのフォントグループに

とかを追加する

vi /usr/loca/etc/re

XML=/usr/local/share/maps/style/OSMBright/OSMBright.xml
HOST=localhost

sudo mkdir -p /var/run/renderd
sudo chown osm /var/run/renderd
sudo mkdir -p /var/lib/mod_tile
sudo chown osm /var/lib/mod_tile

convert data

時間がかかるのでnohupで実行。
nohup time osm2pgsql --slim -S /usr/local/share/osm2pgsql/default.style -d gis -C 4000 /tmp/japan.osm.bz2 &

SELINUXを切る

setenforce 0
※気をつける

実行

renderd -f -c /usr/local/etc/renderd.conf

test

http://192.168.1.xxx/osm_tiles/0/0/0.png
http://192.168.1.xxx/osm/reverse.php?format=json&lat=35.905207&lon=139.620168

ubuntuの場合

yumじゃなくてapt-getで

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 libgeotiff-epsg node-carto postgresql postgresql-contrib postgis postgresql-9.3-postgis-2.1

とかすればよい。

5
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6