{"id":379,"date":"2016-09-11T01:01:26","date_gmt":"2016-09-10T17:01:26","guid":{"rendered":"http:\/\/syarman.com\/soft\/?p=379"},"modified":"2019-08-08T16:30:01","modified_gmt":"2019-08-08T08:30:01","slug":"pemasangan-openstreetmap-pada-ubuntu-16-04","status":"publish","type":"post","link":"http:\/\/syarman.com\/soft\/2016\/09\/11\/pemasangan-openstreetmap-pada-ubuntu-16-04\/","title":{"rendered":"Pemasangan OpenStreetMap pada Ubuntu 16.04"},"content":{"rendered":"<p>Setelah beberapa cubaan untuk hos &#8217;tile&#8217; Open Street Map (OSM) yang disudahi dengan linangan airmata. Akhirnya saya berjaya melakukan pemasangan OSM pada Ubuntu 16.04.<\/p>\n<p>Pemasangan dilakukan di Linode 2GB RAM sahaja, dan saya hanya berminat untuk hos &#8217;tile&#8217; bagi negara Malaysia sahaja.<\/p>\n<p>Sebelum melakukan proses pemasangan, perkara pertama yang perlu dilakukan adalah<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo apt update\nsudo apt upgrade\n<\/pre>\n<p>Memandangkan proses pemasangan memerlukan RAM 4GB (minima) maka saya perlu membuat fail swap agar dapat menampung kekurangan 2GB RAM tadi. Makanya, saya peruntukkan 2G untuk swapfile. Tapi memandangkan saya hanya import peta Malaysia, maka tidak perlu ada swapfile.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo fallocate -l 2G \/swapfile\nsudo chmod 600 \/swapfile\nsudo mkswap \/swapfile\n<\/pre>\n<p>Isu yang kedua yang saya hadapi ketika proses pemasangan OSM adalah timeout ketika ssh. Untuk mengelakkan perkara ini terjadi,<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo nano \/etc\/ssh\/ssh_config\n<\/pre>\n<p>Cari perkataan ServerAliveInterval. Sekiranya tiada tambah ServerAliveInterval 90.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nServerAliveInterval 90\n<\/pre>\n<p>Sekarang kita sudah boleh mula dengan proses pemasangan. Mulakan dengan memasang Postgres<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo apt install postgresql postgresql-contrib postgis postgresql-9.5-postgis-2.2\n<\/pre>\n<p>Selesai proses pemasangan Postgres, kita perlu masuk ke dalam pangkalan data postgres. Secara lalai, pengguna postgres akan dijana semasa proses pemasangan tadi. Jadi kita perlu masuk ke persekitaran pengguna postgres<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo -u postgres -i\n<\/pre>\n<p>Sekarang kita perlu tambah pengguna untuk diakses ke pangkalan data. Pengguna postgres merupakan &#8216;root&#8217; didalam pangkalan data, jadi kita perlu menambah pengguna baru.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ncreateuser osm\n<\/pre>\n<p>Selesai tambah pengguna osm, kita juga perlu jana pangkalan data baru yang diberi nama openstreet(nama ini terpulang kepada anda. Selesai menjana pangkalan data, anda juga perlu aktifkan &#8216;extension&#8217; hstore dan postgis. Kedua-dua &#8216;extension&#8217; ini diguna pakai bagi memproses maklumat gis.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ncreatedb -E UTF8 -O osm openstreet\npsql -c \"CREATE EXTENSION hstore;\" -d openstreet\npsql -c \"CREATE EXTENSION postgis;\" -d openstreet\n<\/pre>\n<p>Kemudian kita perlu keluar dari postgres dengan menaip <strong>exit<\/strong><\/p>\n<p>Oleh kerana kita telah menambah pengguna osm didalam pangkalan data, kita juga perlu menambah pengguna osm didalam Ubuntu. Ini bagi membolehkan pengguna osm didalam persekitaran sistem mengakses pangkalan data openstreet menggunakan pengguna osm.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo adduser osm\n<\/pre>\n<p>Memandangkan saya malas untuk &#8216;switch&#8217; pengguna, maka saya juga telah tambah pengguna osm ke dalam senarai sudoers.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nusermod -aG sudo username\n<\/pre>\n<p>Bertukar kepada persekitaran osm. Bertukar!<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsu - osm\n<\/pre>\n<p>Langkah seterusnya adalah muat turun CartoCSS map stylesheets<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nwget https:\/\/github.com\/gravitystorm\/openstreetmap-carto\/archive\/v2.41.0.tar.gz\n<\/pre>\n<p>Selesai proses muat turun, untar fail tersebut.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ntar xvf v2.41.0.tar.gz\n<\/pre>\n<p>Muat turun pula fail peta Malaysia<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nwget -c http:\/\/download.geofabrik.de\/asia\/malaysia-singapore-brunei-latest.osm.pbf\n<\/pre>\n<p>Bagi mengimport data peta kedalam pangkalan data, kita memerlukan osm2psql. Sekiranya anda tidak membenarkan pengguna osm melakukan sudo, sila tukar ke pengguna root terlebih dahulu.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo apt install osm2pgsql\n<\/pre>\n<p>Sebaik sahaja selesai proses pemasangan osm2psql, larikan arahan dibawah<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nosm2pgsql --slim -d gis -C 3600 --hstore -S openstreetmap-carto-2.41.0\/openstreetmap-carto.style malaysia-singapore-brunei-latest.osm.pbf\n<\/pre>\n<p>Semua yang kita lakukan tadi adalah bahagian mudah, sekarang kita perlu memasang mod_tiles. Kebanyakan ralat berpunca dari pemasangan mod_tiles yang tidak betul.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo apt install git autoconf libtool libmapnik-dev apache2-dev\ngit clone https:\/\/github.com\/openstreetmap\/mod_tile.git\n<\/pre>\n<p>Arahan diatas membolehkan memasang beberapa &#8216;library&#8217; yang diperlukan. Kita guna memuat turun kod sumber map_tile.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ncd mod_tile\/\n.\/autogen.sh\n.\/configure\nmake\nsudo make install\nsudo make install-mod_tile\n<\/pre>\n<p>Arahan tadi menyebabkan kita mengkonfigurasi, mengkompil serta memasang mod_tile pada ubuntu. Sekarang kita perlu menjana mapnik &#8216;stylesheet&#8217;.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo apt install curl unzip gdal-bin mapnik-utils node-carto\n<\/pre>\n<p>Sekirannya anda didalam persekitaran pengguna root, masuk semula ke persekitaran pengguna osm. Andai anda dalam persekitaran osm, langkau langkah ini.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsu - osm\n<\/pre>\n<p>Sekarang kita perlu memasang &#8216;library&#8217; yang perlu untuk menggunakan mapnik.<br \/>\nMasuk ke folder openstreetmap-carto-2.41.0\/ dan jana fail bentuk. Seterusnya menjana style.xml<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo apt install curl unzip gdal-bin mapnik-utils node-carto\ncd openstreetmap-carto-2.41.0\/\n.\/get-shapefiles.sh\ncarto project.mml &gt; style.xml\n<\/pre>\n<p>Selesai langkah-langkah diatas, kita perlu mengkonfigurasi renderd<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo nano \/usr\/local\/etc\/renderd.conf\n<\/pre>\n<p>Copy arahan dibawah dan paste pada renderd.conf<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#x5B;renderd]\nsocketname=\/var\/run\/renderd\/renderd.sock\nnum_threads=1\ntile_dir=\/var\/lib\/mod_tile\nstats_file=\/var\/run\/renderd\/renderd.stats\n\n&#x5B;mapnik]\nplugins_dir=\/usr\/lib\/mapnik\/3.0\/input\nfont_dir=\/usr\/share\/fonts\/truetype\nfont_dir_recurse=1\n\n&#x5B;default]\nURI=\/osm_tiles\/\nTILEDIR=\/var\/lib\/mod_tile\nXML=\/home\/osm\/openstreetmap-carto-2.41.0\/style.xml\nHOST=localhost\nTILESIZE=256\n;HTCPHOST=proxy.openstreetmap.org\n;MINZOOM=0\n;MAXZOOM=18\n;TYPE=png image\/png\n;DESCRIPTION=This is a description of the tile layer used in the tile json requ$\n;ATTRIBUTION=&amp;copy;&lt;a href=\\\"http:\/\/www.openstreetmap.org\/\\\"&gt;OpenStreetMap&lt;\/a&gt; $\n;SERVER_ALIAS=http:\/\/localhost\/\n;CORS=http:\/\/www.openstreetmap.org\n;ASPECTX=1\n;ASPECTY=1\n;SCALE=1.0\n\n<\/pre>\n<p>Kenapa saya suruh copy dan paste sahaja? Sebab yang lain tidak diperlukan, dan akan menyebabkan ralat.<br \/>\nLangkah seterusnya adalah salin fail mod_tile\/debian\/renderd.init kedalam \/etc\/init.d\/renderd dan diberikan kebenaran, dengan harapan ianya sentiasa berada dijalan yang benar.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo cp mod_tile\/debian\/renderd.init \/etc\/init.d\/renderd\nsudo chmod a+x \/etc\/init.d\/renderd\n<\/pre>\n<p>Sudah penat? Sabar, sekarang kita perlu edit fail tadi.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo nano \/etc\/init.d\/renderd\n<\/pre>\n<p>Ubah parameter tersebut menjadi<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nDAEMON=\/usr\/local\/bin\/$NAME\nDAEMON_ARGS=\"-c \/usr\/local\/etc\/renderd.conf\"\nRUNASUSER=osm\n<\/pre>\n<p>Sekarang kita perlu buat satu folder dan berikan kebenaran kepada folder tersebut kepada osm. Tiada lain melainkan yang benar-benar belaka.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo mkdir -p \/var\/lib\/mod_tile\nsudo chown osm:osm \/var\/lib\/mod_tile\n<\/pre>\n<p>Akhirnya!!!! Ini merupakan langkah terakhir untuk renderd.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo systemctl daemon-reload\nsudo systemctl start renderd\nsudo systemctl enable renderd\n<\/pre>\n<p>Eh eh eh jangan berseronok dulu! Ada lagi yang kena buat. Sekarang taip exit. Anda akan berada dipersekitaran root. Buat arahan dibawah.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo nano \/etc\/apache2\/mods-available\/mod_tile.load\n<\/pre>\n<p>Tampal kod ini pada fail tadi<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nLoadModule tile_module \/usr\/lib\/apache2\/modules\/mod_tile.so\n<\/pre>\n<p>Aku dah tak larat dah nak taip dan perjelaskan dengan terperinci. Buat sahaja arahan dibawah<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo ln -s \/etc\/apache2\/mods-available\/mod_tile.load \/etc\/apache2\/mods-enabled\/\nsudo nano \/etc\/apache2\/sites-enabled\/000-default.conf\n<\/pre>\n<p>Sekarang cari . Dah jumpa? Tampal kod dibawah didalam fail itu.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nLoadTileConfigFile \/usr\/local\/etc\/renderd.conf\nModTileRenderdSocketName \/var\/run\/renderd\/renderd.sock\n# Timeout before giving up for a tile to be rendered\nModTileRequestTimeout 0\n# Timeout before giving up for a tile to be rendered that is otherwise missing\nModTileMissingRequestTimeout 30\n<\/pre>\n<p>Sudah boleh restart apache2<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsudo systemctl restart apache2\n<\/pre>\n<p>Barulah boleh senyum-senyum kambing dan pergi ke http:\/\/ip-server\/osm_tiles\/0\/0\/0.png guna pelayar. Berdoalah sambil-sambil melihat pada skrin agar tiada ralat. Sekiranya ada, tinggalkan komen. Saya cuba bantu.<\/p>\n<p>p\/s : Arahan diatas di &#8216;trace&#8217; semula dari history bash.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Setelah beberapa cubaan untuk hos &#8217;tile&#8217; Open Street Map (OSM) yang disudahi dengan linangan airmata. Akhirnya saya berjaya melakukan pemasangan OSM pada Ubuntu 16.04. Pemasangan dilakukan di Linode 2GB RAM sahaja, dan saya hanya berminat untuk hos &#8217;tile&#8217; bagi negara Malaysia sahaja. Sebelum melakukan proses pemasangan, perkara pertama yang perlu dilakukan adalah sudo apt update [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[47,46],"tags":[],"class_list":["post-379","post","type-post","status-publish","format-standard","hentry","category-openstreetmap","category-ubuntu-16-04"],"_links":{"self":[{"href":"http:\/\/syarman.com\/soft\/wp-json\/wp\/v2\/posts\/379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/syarman.com\/soft\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/syarman.com\/soft\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/syarman.com\/soft\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/syarman.com\/soft\/wp-json\/wp\/v2\/comments?post=379"}],"version-history":[{"count":3,"href":"http:\/\/syarman.com\/soft\/wp-json\/wp\/v2\/posts\/379\/revisions"}],"predecessor-version":[{"id":417,"href":"http:\/\/syarman.com\/soft\/wp-json\/wp\/v2\/posts\/379\/revisions\/417"}],"wp:attachment":[{"href":"http:\/\/syarman.com\/soft\/wp-json\/wp\/v2\/media?parent=379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/syarman.com\/soft\/wp-json\/wp\/v2\/categories?post=379"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/syarman.com\/soft\/wp-json\/wp\/v2\/tags?post=379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}