標籤:postgresql ubuntu postgis nominatim
一.必須軟體:
在Ubuntu系統編譯運行Nominatim軟體系統必須安裝的軟體有:
1.GCC 編譯器
2.postgresql 資料庫
3.proj4
4.geos
5.postgis
6.PHP
7.PHP-pgsql
8.PEAR::DB
9.protobuf
10.wget
11.osmis
二.安裝必須的軟體包
Apt-get install build-essential libxml2-dev libgeos-dev libpq-devlibbz2-dev
apt-get install gcc proj-bin libgeos-c1 osmis
apt-get install php5 php-pear php5-pgsql php5-json php-db
apt-get install postgresql postgis postgresql-contribpostgresql-9.3-postgis
由於匯入的地理資料格式為pbf,所以需要安裝pbf支援軟體
apt-get install libprotobuf-c0-dev protobuf-c-compiler
在debian系統中,geos運行需要另一個包
apt-get install libgeos++-dev
postgresql配置:
開啟/etc/postgresql/9.3/main中的postgresql.conf檔案,設定如下屬性:
fsync = off
full_page_writes = off
具體命令為:
sudo vim /etc/postgresql/9.3/main中的postgresql.conf
三.安裝Nominatim1.下載源碼
wget http://www.nominatim.org/release/Nominatim-2.2.0.tar.bz2
tar xvf Nominatim-2.2.0.tar.bz2
cd Nominatim-2.2.0
./sutogen.sh
./configure
make
2.在Nominatim目錄中的settings目錄裡建立local.php檔案,
配置如下:
<?php
// Paths
@define(‘CONST_Postgresql_Version‘, ‘9.3‘);
@define(‘CONST_Postgis_Version‘, ‘2.1‘);
@define(‘CONST_Website_BaseURL‘, ‘http://localhost/nominatim/‘);
3.建立postgres使用者賬戶:
1.建立匯入賬戶
adduser <自己的使用者名稱,example:mypg>
passwd <密碼>
su – postgres
psql -template1
介面切換到資料庫的互動介面,敲入如下命令:
CREATE USER <自己的使用者名稱,example:mypg>WITH PASSWORD <密碼>
退出資料庫互動介面,敲入命令:\q
切換到root
建立網站使用者:
createuser -SDR www-data
更改nominatim的讀取許可權:
chmod +x /soft_src
chmod +x /soft_src/Nominatim-2.2.0
chmod +x /soft_src/Nominatim-2.2.0/module
倒入下載的OSM資料,並為其建立索引:
下載資料地址為(pbf格式):
http://download.geofabrik.de/openstreetmap/
匯入pbf資料:
./Nominatim-2.2.0/utils/setup.php --osm-file<自己下載的pbf資料,shanghai.osm.pbf>--all [--osm2pgsql-cache ]
添加額外欄位:
./Nominatim-2.2.0/utils/specialphrases.php –countries >specialphrases_countries.sql
psql -d nominatim -f specialphrases_countries.sql
./Nominatim-2.2.0/utils/specialphrases.php –wiki-import >specialphrases.sql
psql -d nominatim -f specialphrases.sql
建立網站:
sudo mkdir -m 755 /var/www/nominatim
sudo chown <your username> /var/www/nominatim
./utils/setup.php --create-website /var/www/nominatim
配置apache環境:
開啟/etc/apache2/sites-enabled/000-default,在最後添加如下內容:
<Directory "/var/www/nominatim/">
Options FollowSymLinks MultiViews
AddType text/html .php
</Directory>
重啟apache服務:
service apache2 restart
增加mypg對資料庫nominatim的許可權:
su – postgres
psql template1
GRANT ALL PRIVILEGES ON DATABASE nominatim to mypg
\q
4.運行nominatim
瀏覽器登陸:http://http://localhost/nominatim/
看www-data使用者有沒有資料庫讀寫權限,若沒有,則開啟/etc/apache2/envvars,修改
export APACHE_RUN_USER=mypg
export APACHE_RUN_GROUP=mypg