OpenStreetMap, neboli OSM, je mapa světa přidaná uživateli, kterou lze volně upravovat. Můžete si to představit jako open-source a samostatně hostovanou alternativu k Mapám Google. Tento tutoriál vám ukáže, jak vytvořit svůj vlastní dlaždicový server OpenStreetMap na Ubuntu 18.04, takže nemusíte používat vlastní mapovou službu.
Funkce OpenStreetMap
- Data OpenStreetMap pokrývají celý svět, takže je snadné podporovat uživatele v jakékoli zemi nebo v každé zemi.
- OpenStreetMap se aktualizuje každou minutu každou hodinu každého dne a tyto aktualizace máte k dispozici v reálném čase.
- Data OpenStreetMap jsou zdarma a otevřená – neplatí se žádné předplatné ani poplatek za zobrazení stránky.
- Data OpenStreetMap jsou bohatá a podrobná a obsahují obrovské množství dat, která jsou relevantní pro lidi v terénu – pro lidi, kteří je shromáždili.
Předpoklady/hardwarové požadavky
Požadovaná paměť RAM a místo na disku závisí na mapě země, kterou budete používat. Například,
- Mapa Spojeného království vyžaduje alespoň 12 G RAM a 60 GB místa na disku.
- Mapa celé planety vyžaduje alespoň 32G RAM a 1TB SSD disk. Není životaschopné používat rotující pevný disk pro mapu celé planety.
Budete potřebovat více místa na disku, pokud se chystáte předběžně vykreslovat dlaždice, abyste urychlili načítání mapy ve webovém prohlížeči, což se velmi doporučuje. Na této stránce zjistíte, kolik místa na disku je potřeba pro předběžné vykreslení dlaždic. Pokud se například chystáte předběžně vykreslit dlaždice od úrovně přiblížení 0 do úrovně přiblížení 15 pro mapu planety, je vyžadováno dalších 460 GB místa na disku.
Další věc, kterou je třeba poznamenat, je, že import velkých mapových dat, jako je celá planeta, do databáze PostgreSQL trvá dlouho. Zvažte přidání další paměti RAM a zejména použití SSD místo otáčení pevného disku pro urychlení procesu importu.
Pokud se chystáte hostit celou mapu světa, doporučuji vám zakoupit extra velké VPS od Contabo, které se pyšní
- 10jádrový CPU
- 60 GB RAM
- 1,6 TB Intel Optane SSD
Stojí pouhých 26,99 €/měsíc.
Krok 1:Upgradujte software
Vždy je dobrým zvykem aktualizovat serverový software před provedením jakékoli větší práce na vašem serveru. Přihlaste se na svůj server přes SSH a spusťte následující příkaz.
aktualizace sudo apt; upgrade sudo apt
Krok 2:Instalace databázového serveru PostgreSQL a rozšíření PostGIS
Pro ukládání mapových dat použijeme PostgreSQL. PostGIS je geoprostorové rozšíření PostgreSQL. Spusťte následující příkazy a nainstalujte je.
sudo apt install postgresql postgresql-contrib postgis postgresql-10-postgis-2.4
Databázový server PostgreSQL se automaticky spustí a naslouchá na 127.0.0.1:5432
. postgres
uživatel bude vytvořen v OS během procesu instalace. Je to super uživatel pro databázový server PostgreSQL. Ve výchozím nastavení tento uživatel nemá žádné heslo a není třeba jej nastavovat, protože můžete použít sudo
pro přepnutí do postgres
a přihlaste se k serveru PostgreSQL.
sudo -u postgres -i
Nyní můžete vytvořit uživatele PostgreSQL databáze osm
.
createuser osm
Poté vytvořte databázi s názvem gis
a zároveň vytvořit osm
jako vlastník databáze. -E UTF8
udává, že schéma kódování znaků, které se má v databázi použít, je UTF8.
vytvořenob -E UTF8 -O osm gis
Dále vytvořte postgis
a hstore
rozšíření pro gis
databáze.
psql -c "CREATE EXTENSION postgis;" -d gispsql -c "VYTVOŘIT ROZŠÍŘENÍ hstore;" -d gis
Nastavte osm
jako vlastník tabulky.
psql -c "ALTER TABLE space_ref_sys OWNER TO osm;" -d gis
Ukončete postgres
uživatel.
exit
Vytvořte osm
uživatel ve vašem operačním systému, takže dlaždicový server může běžet jako osm
uživatel. Následující příkaz vytvoří systémového uživatele bez hesla.
sudo adduser --system osm
Krok 3:Stáhněte si šablonu stylů mapy a data map
Přejděte do domovského adresáře osm.
cd /home/osm/
Stáhněte si nejnovější šablony mapových stylů CartoCSS do osm
domovský adresář uživatele pomocí git.
sudo apt install git klon https://github.com/gravitystorm/openstreetmap-carto.git
Pokud se při spouštění výše uvedeného příkazu zobrazí chyba „oprávnění odepřeno“, můžete udělit oprávnění pomocí následujícího příkazu. Nahraďte username
s vaším skutečným uživatelským jménem.
sudo setfacl -R -m u:username:rwx /home/osm/
Dále spusťte následující příkaz ke stažení mapových dat celé planety (50G) ve formátu PBF (ProtoBufBinary).
wget -c http://planet.openstreetmap.org/pbf/planet-latest.osm.pbf
Upozorňujeme, že rychlost stahování pro openstreetmap.org je aktuálně omezena na 2048 kB/s. Mapu závodu si můžete stáhnout z jiného zrcadla, jako
wget -c https://download.bbbike.org/osm/planet/planet-latest.osm.pbf
Pokud chcete mapu jednotlivé země/státu/provincie/města, přejděte na http://download.geofabrik.de. BBBike.org také poskytuje výňatky z více než 200 měst a regionů po celém světě v různých formátech. Například stáhněte mapová data Velké Británie (1.1G) pomocí následujícího příkazu.
wget -c http://download.geofabrik.de/europe/great-britain-latest.osm.pbf
Krok 4:Optimalizace výkonu serveru PostgreSQL
Proces importu může nějakou dobu trvat. Pro urychlení tohoto procesu můžeme vyladit některá nastavení serveru PostgreSQL, abychom zlepšili výkon. Upravte hlavní konfigurační soubor PostgreSQL.
sudo nano /etc/postgresql/10/main/postgresql.conf
Nejprve bychom měli změnit hodnotu shared_buffers
. Výchozí nastavení je:
shared_buffers =128 MB
Toto je příliš malé. Základním pravidlem je nastavit to na 25 % celkové paměti RAM (bez odkládacího prostoru). Moje VPS má například 60G RAM, takže jsem to nastavil na:
shared_buffers =15 GB
Najděte následující řádek.
#work_mem =4 MB#maintenance_work_mem =64 MB
Hodnota je opět příliš malá.
work_mem =1 GBmaintenance_work_mem =8 GB
Pak najděte následující řádek.
#effective_cache_size =4 GB
Pokud máte hodně paměti RAM jako já, můžete nastavit vyšší hodnotu pro efektivní_mezipaměť, například 20G.
effective_cache_size =20 GB
Uložte a zavřete soubor. Restartujte PostgreSQL, aby se změny projevily.
sudo systemctl restart postgresql
Ve výchozím nastavení by se PostgreSQL pokusil použít velké stránky v paměti RAM. Linux však ve výchozím nastavení nepřiděluje velké stránky. Zkontrolujte ID procesu PostgreSQL.
sudo head -1 /var/lib/postgresql/10/main/postmaster.pid
Ukázkový výstup:
7031
Poté zkontrolujte hodnotu VmPeak tohoto ID procesu.
grep ^VmPeak /proc/7031/status
Ukázkový výstup:
VmPeak:16282784 kB
Toto je maximální velikost paměti, kterou bude PostgreSQL používat. Nyní zkontrolujte velikost velké stránky v Linuxu.
cat /proc/meminfo | grep -i obrovský
Ukázkový výstup:
AnonHugePages:0 kBShmemHugePages:0 kBHugePages_Total:0HugePages_Free:0HugePages_Rsvd:0HugePages_Surp:0Obrovská velikost stránky:2048 kB
Můžeme si spočítat, kolik velkých stránek potřebujeme. Vydělte hodnotu VmPeak velikostí velké stránky:16282784 kB / 2048 kB =7950. Upravit /etc/sysctl.conf
soubor.
sudo nano /etc/sysctl.conf
Přidejte následující řádek na konec tohoto souboru a přidělte 7950 velkých stránek.
vm.nr_hugepages =7950
Uložte a zavřete soubor. Poté použijte změny.
sudo sysctl -p
Pokud znovu zkontrolujete informace o paměti,
cat /proc/meminfo | grep -i obrovský
Vidíme, že je k dispozici 7950 obrovských stránek.
AnonHugePages:0 kBShmemHugePages:0 kBHugePages_Total:7950HugePages_Free:7950HugePages_Rsvd:0HugePages_Surp:0Hugepagesize:2048 kB
Chcete-li používat velké stránky, restartujte PostgreSQL.
sudo systemctl restart postgresql
Doporučuje se nakonfigurovat SSH keepalive, abyste neztratili připojení SSH. Je to velmi snadné. Stačí otevřít konfigurační soubor klienta SSH na místním počítači se systémem Linux.
sudo nano /etc/ssh/ssh_config
A vložte následující text na konec souboru.
ServerAliveInterval 60
Poté soubor uložte a připojte se k serveru Ubuntu. Ke vzdálenému serveru můžete také přistupovat přes VNC, abyste zabránili přerušovanému připojení, které by přerušilo proces importu.
Krok 5:Importujte data mapy do PostgreSQL
K importu mapových dat potřebujeme nainstalovat osm2pgsql
který převádí data OpenStreetMap na databáze PostgreSQL s podporou postGIS.
sudo apt install osm2pgsql
Udělte oprávnění uživateli postgres.
sudo setfacl -R -m u:postgres:rwx /home/osm/
Přepněte na postgres
uživatel.
sudo -u postgres -i
Spusťte následující příkaz k načtení šablony stylů mapy a mapových dat do gis
databáze. Nahraďte great-britain-latest.osm.pbf
s vaším vlastním souborem mapových dat.
osm2pgsql --slim -d gis --hstore --multi-geometry --number-processes 10 --tag-transform-script /home/osm/openstreetmap-carto/openstreetmap-carto.lua --style /home /osm/openstreetmap-carto/openstreetmap-carto.style -C 32000 /home/osm/great-britain-latest.osm.pbf
kde
--slim
:běžet v tenkém režimu spíše než v normálním režimu. Tato možnost je nutná, pokud chcete v budoucnu aktualizovat mapová data pomocí souborů změn OSM (OSC).-d gis
:vyberte databázi.--hstore
:přidat značky bez sloupce do dalšího sloupce hstore (klíč/hodnota) do tabulek PostgreSQL--multi-geometry
:generování multigeometrických prvků v tabulkách postgresql.--style
:zadejte umístění souboru stylu--number-processes
:počet jader CPU na vašem serveru. Mám 10.-C
příznak určuje velikost mezipaměti v megabajtech. Mělo by to být přibližně 70 % volné paměti RAM ve vašem počítači. Větší velikost mezipaměti má za následek vyšší rychlost importu. Můj server má například 60 GB RAM, takže mohu zadat-C 32000
. Uvědomte si, že PostgreSQL bude potřebovat RAM pro sdílené_buffery. K výpočtu, jak velká by měla být velikost mezipaměti, použijte tento vzorec:(Total RAM - PostgreSQL shared_buffers) * 70%
- Nakonec musíte určit umístění souboru mapových dat.
Výstup příkazu:
Pokud se chystáte importovat úplná data mapy planet, použijte --drop
a --flat-nodes
možnost zvýšit rychlost importu. Všimněte si, že --flat-nodes
tato možnost není vhodná pro malé mapy.
osm2pgsql --slim -d gis --drop --flat-nodes nodes.cache --hstore --multi-geometry --number-processes 10 --tag-transform-script /home/osm/openstreetmap-carto /openstreetmap-carto.lua --style /home/osm/openstreetmap-carto/openstreetmap-carto.style -C 32000 /home/osm/planet-latest.osm.pbf
Využití paměti RAM se bude během procesu importu postupně zvyšovat. Po dokončení importu udělte všechna oprávnění gis
databáze do osm
uživatel.
psql -c "UDĚLEJTE VŠECHNA PRIVILEGIA VE VŠECH TABULKÁCH VE SCHÉMATU public TO osm;" -d gis
Ukončete postgres
uživatel.
exit
Krok 6:Nainstalujte mod_tile a Renderd
mod_tile
je modul Apache, který je nutný k zobrazování dlaždic a renderd
je vykreslovací démon pro vykreslování dlaždic OpenStreetMap. Výchozí úložiště Ubuntu neobsahuje mod_tile
a renderd
, ale můžeme je nainstalovat z OSM PPA.
sudo apt install software-properties-commonsudo add-apt-repository ppa:osmadmins/ppasudo apt install libapache2-mod-tile rendered
Během instalace nainstaluje webový server Apache a zeptá se, zda chcete povolit mod_tile v konfiguraci Apache. Vyberte Ano a stiskněte Enter. Tím se vytvoří konfigurační soubor Apache pro mod_tile (/etc/apache2/sites-available/tileserver_site.conf
).
Vykreslovací démon se automaticky spustí, jak je vidět na:
vykreslen stav systemctl
Krok 7:Vygenerujte šablonu stylů Mapnik
Nainstalujte požadované balíčky.
sudo apt install curl unzip gdal-bin mapnik-utils libmapnik-dev python3-pip
Potřebujeme také nainstalovat nodejs a npm z upstream úložiště pomocí následujících příkazů.
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -sudo apt-get install -y nodejs
Poté nainstalujte balíček carto pomocí npm.
instalace sudo npm -g carto
Nainstalujte psycopg2
Modul Python.
instalace sudo -H pip3 psycopg2==2.8.5
Přepněte na postgres
uživatel.
sudo -u postgres -i
Cd do adresáře stylu carto.
cd /home/osm/openstreetmap-carto/
Získejte shapefiles.
scripts/get-external-data.py
Pokud při spuštění výše uvedeného příkazu narazíte na následující chybovou zprávu, máte problémy s DNS. Jednoduše počkejte několik minut a spusťte skript Python znovu.
Nepodařilo se navázat nové připojení:[Errno -3] Dočasné selhání při překladu názvů
Nyní vytvořte šablonu stylů XML Mapnik pomocí carto
kompilátor šablony stylů mapy.
carto project.mml> style.xml
Udělte všechna oprávnění gis
databáze do osm
uživatel.
psql -c "UDĚLEJTE VŠECHNA PRIVILEGIA VE VŠECH TABULKÁCH VE SCHÉMATU public TO osm;" -d gis
Ukončete postgres
uživatel.
exit
Krok 8:Instalace písem
Musíte nainstalovat ttf-dejavu
balíček.
sudo apt install ttf-dejavu
Chcete-li zobrazit jiné než latinské znaky, nainstalujte následující balíčky.
sudo apt install fonts-noto-cjk fonts-noto-hinted fonts-noto-unhinted ttf-unifont
Krok 9:Konfigurace vykreslení
Upravte vykreslený konfigurační soubor.
sudo nano /etc/renderd.conf
V [renderd]
změňte počet vláken podle počtu jader CPU na vašem serveru.
num_threads=10
V [default]
části, změňte hodnotu XML a HOST na následující. Všimněte si, že řádky začínající středníkem (;) jsou komentáře.
XML=/home/osm/openstreetmap-carto/style.xmlHOST=map.vase-domena.com
V [mapnik]
sekce, změňte hodnotu plugins_dir
na následující.
plugins_dir=/usr/lib/mapnik/3.0/input/
Výchozí vstupní adresář zásuvných modulů můžete vytisknout pomocí následujícího příkazu.
mapnik-config --input-plugins
Pokud chcete zobrazit jiné než latinské znaky, je lepší změnit nastavení písma na následující.
font_dir=/usr/share/fonts/truetypefont_dir_recurse=true
Uložte a zavřete soubor. Poté upravte soubor init skriptu
sudo nano /etc/init.d/renderd
Najděte následující řádek.
RUNASUSER=www-data
Změňte uživatele na osm
. To je potřeba k načtení mapových dat z databáze PostgreSQL.
RUNASUSER=osm
Uložte soubor. Nastavte osm
jako vlastník /var/lib/mod_tile/
adresář, který bude obsahovat vykreslené soubory dlaždic.
sudo chown osm /var/lib/mod_tile/ -R
Poté restartujte poskytovanou službu.
sudo systemctl daemon-reloadsudo systemctl restart vykreslen
Musíte zkontrolovat protokol vykreslení.
vykreslení sudo journalctl -eu
Ujistěte se, že vykreslení nezpůsobí žádnou chybu v protokolu, jinak se mapa nezobrazí.
Krok 10:Konfigurace Apache
Upravte soubor virtuálního hostitele OSM.
sudo nano /etc/apache2/sites-available/tileserver_site.conf
Změňte ServerName na svůj vlastní název domény, například map.yourdomain.com
. Pro tuto subdoménu musíte také vytvořit záznam DNS A.
ServerName map.yourdomain.com
Uložte a zavřete soubor. Restartujte Apache.
sudo systemctl restart apache2
Poté do adresního řádku webového prohlížeče zadejte
map.vase-domena.com/osm/0/0/0.png
Měli byste vidět dlaždici mapy světa. Gratuluji! Právě jste úspěšně vybudovali svůj vlastní dlaždicový server OSM.
Pokud jste povolili bránu firewall UFW, nezapomeňte otevřít port 80 a 443 následujícím příkazem.
sudo ufw povolit 80 443/tcp
Krok 11:Zobrazte svou dlaždicovou webovou mapu
Dlaždicová webová mapa je také známá jako kluzká mapa v terminologii OpenStreetMap. Pro svůj dlaždicový server můžete použít dvě bezplatné a otevřené JavaScriptové mapové knihovny:OpenLayer a Leták . Výhodou Leaflet je, že se snadno používá a vaše mapa bude vhodná pro mobily.
OpenLayer
Chcete-li svou kluzkou mapu zobrazit pomocí OpenLayer, stáhněte si JavaScript a CSS z openlayer.org a extrahujte je do složky webroot.
cd /var/www/sudo wget https://github.com/openlayers/openlayers/releases/download/v5.3.0/v5.3.0.zipsudo unzip v5.3.0.zip
Dále vytvořte index.html
soubor.
sudo nano /var/www/index.html
Do souboru vložte následující kód HTML. Nahraďte červeně zbarvený text a upravte zeměpisnou délku, šířku a úroveň přiblížení podle svých potřeb.
Dostupná mapa Přejít na mapu
Uložte a zavřete soubor. Nyní si můžete svou kluzkou mapu zobrazit zadáním své subdomény do adresního řádku prohlížeče.
map.yourdomain.com
nebo
map.yourdomain.com/index.html
Leták
Chcete-li svou kluzkou mapu zobrazit pomocí Leftlet, stáhněte si JavaScript a CSS z leftletjs.com a extrahujte je do složky webroot.
cd /var/www/sudo wget http://cdn.leafletjs.com/leaflet/v1.6.0/leaflet.zipsudo rozbalit leták.zip
Dále vytvořte index.html
soubor.
sudo nano /var/www/index.html
Do souboru vložte následující kód HTML. Nahraďte červeně zbarvený text a upravte zeměpisnou délku, šířku a úroveň přiblížení podle svých potřeb.
Můj první osm
Uložte a zavřete soubor. Nyní si můžete zobrazit svou kluzkou mapu zadáním IP adresy vašeho serveru do prohlížeče.
map.yourdomain.com
nebo
map.yourdomain.com/index.html
Krok 12:Předběžné vykreslení dlaždic
Vykreslování dlaždic za běhu prodlouží dobu načítání mapy ve webovém prohlížeči. Chcete-li dlaždice předem vykreslit namísto vykreslování za běhu, použijte následující render_list
příkaz. Použijte -z
a -Z
příznak určete úroveň přiblížení a nahraďte počet vláken podle počtu jader CPU na vašem serveru. Render_list
vykreslí seznam dlaždic mapy odesláním požadavků vykreslovacímu démonovi. Předem vykreslené dlaždice budou uloženy do mezipaměti ve /var/lib/mod_tile
adresář.
render_list -m default -a -z 0 -Z 19 --num-threads=10
Pokud později aktualizujete data mapy, můžete všechny dlaždice znovu předem vykreslit pomocí --force
možnost.
render_list -m default -a -z 0 -Z 19 --num-threads=10 --force
Chcete-li vykreslit dlaždice mapy na pozadí, přidejte &
symbol na konci.
render_list -m default -a -z 0 -Z 19 --num-threads=10 &
Nyní můžete zavřít okno terminálu. Chcete-li zkontrolovat průběh vykreslování, otevřete další relaci SSH a spusťte následující příkaz.
vykreslení sudo journalctl -eu
Výše uvedený příkaz zobrazí nejnovější protokol renderd
servis. Následující řádky ukazují, že můj OSM server nyní vykresluje dlaždice mapy na úrovni přiblížení 12.
Renderd [20838]:Debug:Start Tile Default 12 1008-1015 4056-4063, nový metatilní renderd [20838]:Promítané souřadnice 12 1008 4056-> -10175297.205328 | -19724422,2749444422,2749444422,2749444422,2749444422,274944. Vykresleno 8 dlaždic[20838]:DEBUG:DONE TILE výchozí 12 1008-1015 3984-3991 za 0,799 sekund vykresleno[20838]:DEBUG:Odesílání render cmd (3 výchozí 12/1008/3984) s protokolem fd 18 vykresleno verze 12 20838]:DEBUG:Mám příchozí požadavek s vykresleným protokolem verze 2[20838]:DEBUG:Mám příkaz RenderBulk fd(18) xml(výchozí), z(12), x(1008), y(4064), mime(obrázek/ PNG), Možnosti () Renderd [20838]:Debug:Start Tile Default 12 1008-1015 4064-4071, nový Metatile Renderd [20838]:Plánované souřadnice 12 1008 4064-> -10175297.2053642. --1908 -100970199084269701990834222019908 -164220269908426979084226979908422222204908422222. dlaždice 8 x 8
Krok 13:Povolte HTTPS
Pro šifrování HTTP provozu můžeme získat a nainstalovat bezplatný TLS certifikát od Let’s Encrypt. Nejprve nainstalujte klienta Let’s Encrypt (certbot) na Ubuntu 18.04.
sudo add-apt-repository ppa:certbot/certbotsudo apt install certbot
Protože používáme webový server Apache, musíme také nainstalovat plugin Apache.
sudo apt install python3-certbot-apache
Poté spusťte následující příkaz pro získání a instalaci certifikátu TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple --email [e-mail chráněný] -d map.vašedoména.com
Jakmile je certifikát nainstalován, obnovte webovou stránku a v adresním řádku se zobrazí zámek.
Pokud v adresním řádku Firefoxu vidíte žlutý trojúhelník, znamená to, že adresy URL dlaždic stále používají HTTP. Musíte upravit soubor index.html a nahradit všechny protokoly HTTP protokolem HTTPS následujícím příkazem.
sudo sed -i 's/http/https/g' /var/www/index.html
Krok 14:Povolte HTTP2
Chcete-li dále zlepšit výkon načítání mapy, můžete povolit protokol HTTP2. Nejprve musíte povolit modul HTTP2.
sudo a2enmod http2
Poté otevřete soubor virtuálního hostitele SSL.
sudo nano /etc/apache2/sites-enabled/tileserver_site-le-ssl.conf
Vložte následující direktivu za úvodní <VirtualHost *:443>
tag.
Protokoly h2 http/1.1
Uložte a zavřete soubor. Poté restartujte Apache, aby se změny projevily.
sudo systemctl restart apache2
Omezit přístup k vašemu dlaždicovému serveru OSM
Ve výchozím nastavení může kdokoli použít OpenLayer nebo Leaflet k vytvoření kluzké mapy s adresou URL vašeho dlaždicového serveru. Chcete-li omezit přístup k vašemu dlaždicovému serveru, upravte soubor virtuálního hostitele Apache.
sudo nano /etc/apache2/sites-enabled/tileserver_site-le-ssl.conf
Přidejte následující řádky do <VirtualHost>
značky.
SetEnvIf Referer example\.com trusted_referer Objednávka odepřít, povolit Odepřít všem Povolit z env=trusted_referer
Výše uvedený kód zkontroluje, zda hlavička odkazu HTTP obsahuje vaši vlastní doménu. Pokud ne, přejděte do /osm
adresář bude odepřen. Zpětné lomítko se používá k ukončení znaku tečka. Chcete-li přidat více názvů hostitelů jako důvěryhodné referery, použijte následující syntaxi.
SetEnvIf Referer (example\.com|www\.example\.com|map\.example\.com) trusted_referer
Uložte a zavřete soubor. Poté otestujte syntaxi.
sudo apache2ctl -t
Pokud je syntaxe v pořádku, znovu načtěte Apache, aby se změny projevily.
sudo systemctl reload apache2
Automaticky obnovit certifikát TLS
Chcete-li automaticky obnovit certifikát TLS, můžete vytvořit úlohu Cron. Jednoduše otevřete soubor crontab uživatele root.
sudo crontab -e
Přidejte následující řádek na konec souboru.
@daily certbot renew --quiet &&systemctl reload apache2
Databáze PostgreSQL a webový server na různých hostitelích
Pokud váš webový server PostgreSQL a Apache sídlí na různých hostitelích, musíte upravit project.mml
soubor na hostiteli Apache.
nano /home/osm/openstreetmap-carto-4.20.0/project.mml
Najděte následující řádky:
osm2pgsql:&osm2pgsql typ:"postgis" dbname:"gis" key_field:"" geometry_field:"way" rozsah:"-20037508,-20037508,20037508,20037508"
Zadejte IP adresu databázového serveru PostgreSQL.
osm2pgsql:&osm2pgsql typ:"postgis" hostitel:"10.0.0.2" dbname:"gis" klíčové_pole:"" geometry_field:"way" rozsah:"-20037508,-20037508,20037508,2008"preUložte a zavřete soubor. Poté vytvořte šablonu stylů XML Mapnik pomocí
carto
kompilátor šablony stylů mapy.carto project.mml> style.xmlNa databázovém serveru PostgreSQL upravte hlavní konfigurační soubor.
sudo nano /etc/postgresql/10/main/postgresql.confPřidáním následujícího řádku nastavíte PostgreSQL tak, aby naslouchal na všech rozhraních.
listen_addresses ='*'Uložte a zavřete soubor. Poté upravte konfigurační soubor ověřování klienta PostgreSQL.
sudo nano /etc/postgresql/10/main/pg_hba.confPřidejte následující řádek na konec souboru, abyste povolili
osm
uživatele k přihlášení z hostitele Apache. Nahraďte 10.0.0.1 IP adresou hostitele Apache.hostitel gis osm 10.0.0.1/32 trustUložte a zavřete soubor. Poté restartujte PostgreSQL.
sudo systemctl restart postgresqlRestartujte démona vykreslování na hostiteli Apache.
vykreslení restartu sudo systemctlMusíte zkontrolovat protokol vykreslení. Ujistěte se, že vykreslení nezpůsobí žádnou chybu v protokolu, jinak se mapa nezobrazí.
vykreslení sudo journalctl -euMěli byste také omezit přístup k portu 5432 databázového serveru PostgreSQL. Můžete například použít následující příkaz UFW k povolení pouze adresy IP hostitele Apache.
sudo ufw umožňuje vstup z 10.0.0.1 na libovolný port 5432Závěr
Doufám, že vám tento návod pomohl nastavit dlaždicový server OpenStreetMap na Ubuntu 18.04. Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje, kde získáte další tipy a triky. Opatruj se 🙂
Instalace AWStats (Advanced Web Statistics) na Ubuntu 18.04 s Apache Nainstalujte Resilio Sync (BTSync) na Ubuntu 20.04, 18.04 Desktop/ServerUbuntu