ubuntu16.04下のOpenStreetMapオフライン地理符号化サーバの構築(Nominatim)

8387 ワード

OpenSteetMap公式サイト
NominnatimのWebページには、使用、インストール、データなどのURLが含まれています.
Nominatimの紹介
Nominatimのインストール、これは分かりにくいです.
一部の国と地域のデータのダウンロード、本文は使用します.osm.pbfフォーマット、これも最適なフォーマットです.
Ubuntu16.04ダウンロード、ダウンロード時にお金を払うオプションはすべて0に設定して、無料版です.これは標準版です.優麒麟(Ubuntu Kylin)は使わないほうがいいです.
上のサイトで必要なソフトウェア、環境などが紹介されているので、コマンド文はすべて紫色のフォントで、追加または変更するテキストファイルの内容は緑です.
コマンド文間のスペースに注意してください.
インストール中に「続行しますか?[Y/n]」というメッセージが表示されます.ここでyを選択し、インストールを続行します.
注意:以下のコードはすべて手動で入力したほうがいいです.コピーしないでください.そうしないと、エラーが発生しやすいです.
1.データ準備
からhttp://download.geofabrik.de/asia.htmlのダウンロードに必要な国のデータ(.osm.pbf)
からhttp://www.nominatim.org/release/Nominatim-2.5.1.tar.bz2のダウンロードNominatim
2.プリインストールソフトウェア
sudo apt-get install build-essential wget
sudo apt-get install libxml2-dev wget
sudo apt-get install libpq-dev wget
sudo apt-get update
sudo apt-get install libbz2-dev wget
sudo apt-get install libtool wget
sudo apt-get install automake wget
sudo apt-get install libproj-dev wget
sudo apt-get install libboost-dev wget
sudo apt-get install libboost-system-dev wget
sudo apt-get install libboost-filesystem-dev wget
sudo apt-get install libboost-thread-dev wget
sudo apt-get install libexpat-dev wget
sudo apt-get install gcc wget
sudo apt-get install proj-bin wget
sudo apt-get install libgeos-c1v5wget
sudo apt-get install libgeos++-dev wget

(以上計17個)
ubuntuではphp 7しかインストールできませんが、nominatimではphp 5をインストールする必要があるため、php 5を破壊するインストールにはマルチステップコマンドが必要です.
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php5.6
sudo apt install libapache2-mod-php5.6
sudo apt install php5.6-curl
sudo apt install php5.6-gd
sudo apt install php5.6-mbstring
sudo apt install php5.6-mcrypt
sudo apt install php5.6-mysql
sudo apt install php5.6-xml
sudo apt install php5.6-xmlrpc
sudo a2dismod php7.0                               //     php7.0,      7.0  
sudo a2enmod php5.6
sudo systemctl restart apache2
sudo apt-get install php-pear wget
sudo apt-get install php5.6-pgsql wget
sudo apt-get install php5.6-json wget
sudo apt-get install php-db wget
sudo apt-get install osmosiswget
sudo apt-get install postgresql-9.5 wget
sudo apt-get install postgis
sudo apt-get install postgresql-contrib-9.5 wget
sudo apt-get install postgresql-server-dev-9.5 wget
sudo apt-cachesearch postgres                 //        postgis  
sudoapt-get install postgresql-9.5-postgis-2.2         //postgresql- 9.5   postgis-2.2,postgresql-9.6   postgis-2.3

(以上計13+11個)
pbfサポートソフトウェアのインストール:
sudo apt-get install libprotobuf-c0-dev
sudo apt-get installprotobuf-c-compiler

postgreビジュアルウィンドウpgadmin 3をインストールします.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -           //         ,         O,    0
sudo apt-get update
sudo apt-getinstall postgresql-client-9.5
sudo apt-get installpgadmin3
pgadmin3            //  pgadmin3,         。            。

3.postgresqlの構成
1)postgresユーザーを設定し、postgresユーザーでログインしてパスワードを変更します.
sudo -u postgres psql postgres
\password postgres
\q
pgadmin3       //                     

2)postgresqlの構成
sudo gedit /etc/postgresql/9.5/main/postgresql.conf     //  gedit    。        .conf  ,          ,    。

開いています.confファイルでパラメータの変更を行います.
fsync=off 173行
full_page_writes=off 183行
synchronous_commit=off 174行
shared_buffers(2 GB)113行
maintenance_work_mem(10 GB)123行
work_mem(50 MB)122行
effective_cache_size(24 GB)289行
checkpoint_segments = 100 (only for PostgreSQL <= 9.4) 
(インストールされているバージョン9.5にはこの項目はなく、変更する必要はありません)
checkpoint_timeout=10 min 196行
checkpoint_completion_target=0.9 199行
4.Nominatimのコンパイルと構成
1)Nominatimのダウンロード
Webサイトhttp://www.nominatim.org/release/Nominatim-2.5.1.tar.bz2を選択し、あるディレクトリに抽出(解凍)します(本明細書では「ダウンロード」ディレクトリに保存します).次のコマンドを使用するか、Webページで直接ダウンロードして右クリックして解凍(抽出)し、データ準備でダウンロードした場合は、ここで直接解凍(抽出)します.
wget     http://www.nominatim.org/release/Nominatim-2.5.1.tar.bz2                        //  Nominatim
tar xvf /home/some/  /Nominatim-2.5.1.tar.bz2    //    “/home/some/  /”             ,  nominatim           。
cd /home/some/  /Nominatim-2.5.1      //  cd    
./configure         //      “.”
make   //         nominatim,        ,              ,    2            ,        。lua libraries         ,nominatim    。

2)nominatimのネットワーク位置の設定
Nominatimディレクトリのsettingsディレクトリにlocalを新規作成します.phpファイルは、nominatimがネットワークサーバ上の場所を通知し、新しいドキュメントの内容は次のとおりです.
//Paths
@define('CONST_Postgresql_Version', '9.5');
@define('CONST_Postgis_Version', '2.2');
// Website settings
@define('CONST_Website_BaseURL', 'http://localhost/nominatim/');
3)インポートアカウントの作成
インポートは、インポートを実行する勘定科目と同じ名前のpostgresスーパーユーザーを使用して完了する必要があります.次のコマンドを実行して、このようなpostgresスーパーユーザー勘定科目を作成します.
sudo -u postgres createuser -s test  //    test  (       ),  test    postgres   ,        
sudo adduser test        //  test        ,    ubuntu   ,       123456,          

4)新規サイトユーザー
su  test                //  :123456
createuser -SDRwww-data          //               

5)nominatimの読み取り権限の変更
su  test                //  :123456
createuser -SDRwww-data          //               

5.データのインポート
1)osm国地域データのインポート
osmosis --read-pbf file="/home/some/  /areaA.osm.pbf" --read-pbf file="/home/some/  /areaB.osm.pbf" --merge --write-pbf file="/home/some/  /areaA-areaB.osm.pbf"                               //           ,                。areaA-areaB.osm.pbf  areaA-areaB     。
su test
  /Nominatim-2.5.1/utils/setup.php --osm-file   /areaA-areaB.osm.pbf --all      //         。         ,      !

インポート中に問題が発生した場合は、既存のデータベースを再作成しようとするとスクリプトが失敗するため、データベースを削除してクリーンアップする必要があります.次のコマンドを使用して、この操作を行います.
sudo -u postgresdropdb nominatim

2)追加フィールドの追加
  /Nominatim-2.5.1/utils/specialphrases.php--countries >   /Nominatim-2.5.1/data/specialphrases_countries.sql
su  test
psql -d nominatim -f   /Nominatim-2.5.1/data/specialphrases_countries.sql   //              /       /  
exit
  /Nominatim-2.5.1/utils/specialphrases.php --wiki-import >   /Nominatim-2.5.1/data/specialphrases.sql
su test
psql -d nominatim -f   /Nominatim-2.5.1/data/specialphrases.sql      //                   
exit

6.ウェブサイトの構築
1)Webサイトのディレクトリを作成し、書き込み可能なインストールユーザーと読み取り可能であることを確認します.
sudo mkdir -m 755 /var/www/html/nominatim
sudo chmod 777 /var/www/html/nominatim                         //            

2)必要なシンボルリンクを使用して、Webサイトのディレクトリを入力します.
  /Nominatim-2.5.1/utils/setup.php --create-website /var/www/html/nominatim

settings/localを確保する必要がある.phpは正しい値CONST_を構成していますWebsite_BaseURL
3)apache環境の構成
sudo gedit /etc/apache2/sites-enabled/000-default.conf                 //  .conf。                 

最後に次の内容を追加します.
html/nominatim/">
       Options FollowSymLinks MultiViews
       AddType text/html   .php
service apache2restart               // apache          

4)testのデータベースnominatimに対する権限の増加
su test
psql template1
GRANT ALL PRIVILEGES ON DATABASE nominatim to test             //  test     ,        
\q
exit

5)nominatimの運転
ブラウザのログインhttp://localhost/nominatim/ネットワークに接続されているかどうかにかかわらず、検索できる名前の場所はすべてあなたが導入した地域に属しているはずです.ネットワークに接続すると具体的な地図が表示され、ネットワークに接続しないと輪郭しか見えません.
データベースを開いてwww-dataユーザーがデータベースの読み書き権限を持っているかどうかを確認し、持っていない場合は以下のコマンドを実行します.
sudo gedit /etc/apache2/envvars        

開いているファイルを次のように変更します.
exportAPACHE_RUN_USER=test
exportAPACHE_RUN_GROUP=test
6)ローカルエリアネットワークの設定
次のようにlocalを変更します.php:
// Paths
@define('CONST_Postgresql_Version', '9.5');
@define('CONST_Postgis_Version', '2.2');
// Website settings
@define('CONST_Website_BaseURL', 'http://000.000.000.000/nominatim/');                
以上000.000.000.000はパソコンIP
変更後にApacheを再起動
service apache2 restart