CentOS7にOpenStreetMap入れる

本ポストは
　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のフォントグループに
<Font face-name="VL Gothic regular"/>
とかを追加する




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

とかすればよい。