| |
software:linux_server:tile_map_server_worl_20.04.4 [2024/09/04 13:43] – [Запуск рендера в фоновом режиме] vladpolskiy | software:linux_server:tile_map_server_worl_20.04.4 [2025/02/01 09:47] (текущий) – внешнее изменение 127.0.0.1 |
---|
* **RAM > 12Gb** | * **RAM > 12Gb** |
* **HDD > 1Tb** | * **HDD > 1Tb** |
<color #7092be>**Все ниже написанное относиться к Ubuntu Server 20.04 (Focal Fossa) и протестировано в августе 2024 года.**</color> | <fc #7092be>**Все ниже написанное относиться к Ubuntu Server 20.04 (Focal Fossa) и протестировано в августе 2024 года.**</fc> |
\\ | \\ |
\\ | \\ |
<color #00a2e8>**:&1: Примечание: В этом руководстве многое загружается с альтернативных, а не с официальных зеркал, по причине скорости загрузки и неизменности файлов в репозитории для данного руководства.**</color> | <fc #00a2e8>**:&1: Примечание: В этом руководстве многое загружается с альтернативных, а не с официальных зеркал, по причине скорости загрузки и неизменности файлов в репозитории для данного руководства.**</fc> |
=====Общая теория===== | =====Общая теория===== |
<color #7092be>**Tile Server OSM**</color> представляет собой набор программ и библиотек, которые работают вместе для создания тайлового (плиточного) сервера. Он состоит из 5 основных компонентов: | <fc #7092be>**Tile Server OSM**</fc> представляет собой набор программ и библиотек, которые работают вместе для создания тайлового (плиточного) сервера. Он состоит из 5 основных компонентов: |
* **mod_tile** | * **mod_tile** |
* **renderd** | * **renderd** |
* **osm2pgsql** | * **osm2pgsql** |
* **postgresql/postgis** | * **postgresql/postgis** |
<color #22b14c>**Postgresql/postgis**</color> - базы данных. <color #22b14c>**Mod_tile**</color> — это модуль <color #22b14c>**http сервера apache**</color>, который обслуживает кэшированные тайлы и решает, какие тайлы нуждаются в повторном рендеринге — либо потому, что они еще не кэшированы, либо потому, что они устарели. <color #22b14c>**Mapnik**</color> — это программная библиотека, которая осуществляет реальный рендеринг с использованием открытого рендеринга.\\ | <fc #22b14c>**Postgresql/postgis**</fc> - базы данных. <fc #22b14c>**Mod_tile**</fc> — это модуль <fc #22b14c>**http сервера apache**</fc>, который обслуживает кэшированные тайлы и решает, какие тайлы нуждаются в повторном рендеринге — либо потому, что они еще не кэшированы, либо потому, что они устарели. <fc #22b14c>**Mapnik**</fc> — это программная библиотека, которая осуществляет реальный рендеринг с использованием открытого рендеринга.\\ |
\\ | \\ |
<color #7092be>** :&2: Предполагается,** что вы запускаете все от пользователя **без регистрации root** через **«sudo»**. Имя пользователя без **root**, повторяемое по умолчанию, — **«eva»**. Если вы указываете иного пользователя, то вам необходимо будет заменить во всех командах на свое имя и добавить его в группу пользователей, которые могут использовать sudo для получения root-прав. Из вашей обычной учетной записи пользователя без регистрации root.</color>\\ | <fc #7092be>** :&2: Предполагается,** что вы запускаете все от пользователя **без регистрации root** через **«sudo»**. Имя пользователя без **root**, повторяемое по умолчанию, — **«eva»**. Если вы указываете иного пользователя, то вам необходимо будет заменить во всех командах на свое имя и добавить его в группу пользователей, которые могут использовать sudo для получения root-прав. Из вашей обычной учетной записи пользователя без регистрации root.</fc>\\ |
\\ | \\ |
<color #22b14c>**:&2: Общая последовательнось действий:**</color> | <fc #22b14c>**:&2: Общая последовательнось действий:**</fc> |
* **Устанавливаем и обновляем Ubuntu Server** | * **Устанавливаем и обновляем Ubuntu Server** |
* **Устанавливаем основное и дополнительное ПО** | * **Устанавливаем основное и дополнительное ПО** |
| |
=====Установка postgresql/postgis===== | =====Установка postgresql/postgis===== |
* В Ubuntu есть предварительно упакованные версии как <color #22b14c>**postgis**</color>, так и <color #22b14c>**postgresql**</color>, поэтому их можно просто установить через диспетчер пакетов Ubuntu. | * В Ubuntu есть предварительно упакованные версии как <fc #22b14c>**postgis**</fc>, так и <fc #22b14c>**postgresql**</fc>, поэтому их можно просто установить через диспетчер пакетов Ubuntu. |
<code> | <code> |
sudo apt --yes install postgresql postgresql-contrib postgis postgresql-12-postgis-3 postgresql-12-postgis-3-scripts | sudo apt --yes install postgresql postgresql-contrib postgis postgresql-12-postgis-3 postgresql-12-postgis-3-scripts |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_4.1.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_4.1.png?|}} |
* Создаем базу данных **postgis**. По умолчанию в различных программах предполагается, что база данных называется <color #22b14c>**gis**</color>, и тут мы будем использовать то же соглашение, хотя это и не обязательно. <color #ed1c24>Укажите/замените **"свое имя"**</color> пользователя вместо пользователя <color #ed1c24>**"eva"**</color>, где это используется ниже. Это должно быть имя пользователя, которое будет отображать карты с помощью **Mapnik**. | * Создаем базу данных **postgis**. По умолчанию в различных программах предполагается, что база данных называется <fc #22b14c>**gis**</fc>, и тут мы будем использовать то же соглашение, хотя это и не обязательно. <fc #ed1c24>Укажите/замените **"свое имя"**</fc> пользователя вместо пользователя <fc #ed1c24>**"eva"**</fc>, где это используется ниже. Это должно быть имя пользователя, которое будет отображать карты с помощью **Mapnik**. |
<code> | <code> |
sudo -u postgres -i | sudo -u postgres -i |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_5.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_5.png?|}} |
* Создадим пользователя <color #ed1c24>(**"eva"**-пример имени пользователя для данного руководства)</color> | * Создадим пользователя <fc #ed1c24>(**"eva"**-пример имени пользователя для данного руководства)</fc> |
<code> | <code> |
createuser eva | createuser eva |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_6.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_6.png?|}} |
* Создадим базу данных <color #22b14c>**gis**</color> с кодировкой <color #22b14c>**UTF8**</color> | * Создадим базу данных <fc #22b14c>**gis**</fc> с кодировкой <fc #22b14c>**UTF8**</fc> |
<code> | <code> |
createdb -E UTF8 -O eva gis | createdb -E UTF8 -O eva gis |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_7.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_7.png?|}} |
* Продолжая работать как пользователь **«postgres»**, настройте PostGIS в PostgreSQL (опять же, меняя имя пользователя на <color #ed1c24>**"eva"**</color> на <color #ed1c24>**"свое"**</color> имя пользователя ниже): | * Продолжая работать как пользователь **«postgres»**, настройте PostGIS в PostgreSQL (опять же, меняя имя пользователя на <fc #ed1c24>**"eva"**</fc> на <fc #ed1c24>**"свое"**</fc> имя пользователя ниже): |
<code> | <code> |
psql | psql |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_8.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_8.png?|}} |
* (ответ <color #22b14c>**«postgres=#»**</color>) | * (ответ <fc #22b14c>**«postgres=#»**</fc>) |
<code> | <code> |
\c gis | \c gis |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_9.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_9.png?|}} |
* (ответ: <color #22b14c>**“You are now connected to database ‘gis’ as user ‘postgres’”**</color>.) | * (ответ: <fc #22b14c>**“You are now connected to database ‘gis’ as user ‘postgres’”**</fc>.) |
<code> | <code> |
CREATE EXTENSION postgis; | CREATE EXTENSION postgis; |
\\ | \\ |
\\ | \\ |
<color #22b14c>**(ответ CREATE EXTENSION)\\ | <fc #22b14c>**(ответ CREATE EXTENSION)\\ |
(ответ CREATE EXTENSION)\\ | (ответ CREATE EXTENSION)\\ |
(ответ ALTER TABLE)\\ | (ответ ALTER TABLE)\\ |
(ответ ALTER TABLE)**</color> | (ответ ALTER TABLE)**</fc> |
<code> | <code> |
\q | \q |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_14.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_14.png?|}} |
* Опять же, выше замените <color #ed1c24>**“eva”**</color> на имя пользователя без регистрации <color #ed1c24>**root**</color>, которого вы выбрали. | * Опять же, выше замените <fc #ed1c24>**“eva”**</fc> на имя пользователя без регистрации <fc #ed1c24>**root**</fc>, которого вы выбрали. |
=====Установка osm2pgsql===== | =====Установка osm2pgsql===== |
* Далее мы установим <color #22b14c>**osm2pgsql**</color>: | * Далее мы установим <fc #22b14c>**osm2pgsql**</fc>: |
<code> | <code> |
sudo apt install osm2pgsql | sudo apt install osm2pgsql |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_15.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_15.png?|}} |
* <color #22b14c>**Ошибок обычно быть не должно**</color> | * <fc #22b14c>**Ошибок обычно быть не должно**</fc> |
| |
=====Mapnik===== | =====Mapnik===== |
* Клонируем репозиторий **mod_tile** | * Клонируем репозиторий **mod_tile** |
| |
<color #00a2e8>**:&1: Примечание: В этом руководстве mod_tile загружается с альтернативных, а не с официальных зеркал (https://github.com/SomeoneElseOSM/mod_tile.git), по причине неизменности файлов в репозитории для данного руководства.**</color> | <fc #00a2e8>**:&1: Примечание: В этом руководстве mod_tile загружается с альтернативных, а не с официальных зеркал (https://github.com/SomeoneElseOSM/mod_tile.git), по причине неизменности файлов в репозитории для данного руководства.**</fc> |
<code> | <code> |
git clone -b switch2osm https://git.wwoss.ru/root/mod_tile.git | git clone -b switch2osm https://git.wwoss.ru/root/mod_tile.git |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_23.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_23.png?|}} |
* (это должно закончится <color #22b14c>**“autoreconf: Leaving directory ‘.’”.**</color>) | * (это должно закончится <fc #22b14c>**“autoreconf: Leaving directory ‘.’”.**</fc>) |
{{:software:linux_server:tile_map_server_wold_20.04.4_24.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_24.png?|}} |
* (в предыдущих установках мне приходилось проделывать это 2 раза для создания папки **mod_tile** в директории **src**) | * (в предыдущих установках мне приходилось проделывать это 2 раза для создания папки **mod_tile** в директории **src**) |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_26.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_26.png?|}} |
* (это должно закончится <color #22b14c>**“config.status: executing libtool commands”**</color>) | * (это должно закончится <fc #22b14c>**“config.status: executing libtool commands”**</fc>) |
{{:software:linux_server:tile_map_server_wold_20.04.4_27.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_27.png?|}} |
<code> | <code> |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_28.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_28.png?|}} |
* Обратите внимание, что здесь некоторые «тревожные» сообщения будут прокручиваться вверх по экрану. Однако это должно заканчиваться на <color #22b14c>**«make[1]: Leaving directory '/home/eva/src/mod_tile'»**</color> | * Обратите внимание, что здесь некоторые «тревожные» сообщения будут прокручиваться вверх по экрану. Однако это должно заканчиваться на <fc #22b14c>**«make[1]: Leaving directory '/home/eva/src/mod_tile'»**</fc> |
{{:software:linux_server:tile_map_server_wold_20.04.4_29.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_29.png?|}} |
<code> | <code> |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_30.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_30.png?|}} |
* (это должно закончиться <color #22b14c>**«make[1]: выход из каталога должно быть '/home/eva/src/mod_tile'»**</color>) | * (это должно закончиться <fc #22b14c>**«make[1]: выход из каталога должно быть '/home/eva/src/mod_tile'»**</fc>) |
{{:software:linux_server:tile_map_server_wold_20.04.4_31.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_31.png?|}} |
<code> | <code> |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_32.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_32.png?|}} |
* (это должно закончиться <color #22b14c>**«chmod 644 /usr/lib/apache2/modules/mod_tile.so»**</color>) | * (это должно закончиться <fc #22b14c>**«chmod 644 /usr/lib/apache2/modules/mod_tile.so»**</fc>) |
{{:software:linux_server:tile_map_server_wold_20.04.4_33.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_33.png?|}} |
<code> | <code> |
* клонируем репозитарий | * клонируем репозитарий |
| |
<color #00a2e8>**:&1: Примечание: В этом руководстве openstreetmap-carto загружается с альтернативных, а не с официальных зеркал (https://github.com/gravitystorm/openstreetmap-carto), по причине неизменности файлов openstreetmap-carto в репозитории для данного руководства.**</color> | <fc #00a2e8>**:&1: Примечание: В этом руководстве openstreetmap-carto загружается с альтернативных, а не с официальных зеркал (https://github.com/gravitystorm/openstreetmap-carto), по причине неизменности файлов openstreetmap-carto в репозитории для данного руководства.**</fc> |
<code> | <code> |
git clone https://git.wwoss.ru/root/openstreetmap-carto.git | git clone https://git.wwoss.ru/root/openstreetmap-carto.git |
carto -v | carto -v |
</code> | </code> |
* Это должно ответить номером версии, которая должна быть не меньше: <color #22b14c>**1.2.0**</color> | * Это должно ответить номером версии, которая должна быть не меньше: <fc #22b14c>**1.2.0**</fc> |
{{:software:linux_server:tile_map_server_wold_20.04.4_40.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_40.png?|}} |
* преобразуем проект carto во что-то, понятное Mapnik: | * преобразуем проект carto во что-то, понятное Mapnik: |
{{:software:linux_server:tile_map_server_wold_20.04.4_41.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_41.png?|}} |
* Теперь у вас есть таблица стиля Mapnik XML в /home/eva/src/openstreetmap-carto/mapnik.xml. | * Теперь у вас есть таблица стиля Mapnik XML в /home/eva/src/openstreetmap-carto/mapnik.xml. |
<color #22b14c> :&2: **Примечание:** все предупреждения\\ | <fc #22b14c> :&2: **Примечание:** все предупреждения\\ |
**Warning: style/admin.mss:22:18 Styles do not match layer selector #admin-low-zoom.**\\ | **Warning: style/admin.mss:22:18 Styles do not match layer selector #admin-low-zoom.**\\ |
**Warning: style/admin.mss:18:6 Styles do not match layer selector #admin-low-zoom.**\\ | **Warning: style/admin.mss:18:6 Styles do not match layer selector #admin-low-zoom.**\\ |
Игнорируем</color> | Игнорируем</fc> |
{{:software:linux_server:tile_map_server_wold_20.04.4_42.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_42.png?|}} |
| |
{{:software:linux_server:tile_map_server_wold_20.04.4_43.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_43.png?|}} |
* на странице зеркала загрузки https://wwoss.ru/openstreetmap/ выбираем нужную нам карту для и копируем ее ссылку | * на странице зеркала загрузки https://wwoss.ru/openstreetmap/ выбираем нужную нам карту для и копируем ее ссылку |
<color #00a2e8>**:&1: Примечание: В этом руководстве файлы ".osm.pbf" загружается с альтернативных, а не с официальных зеркал (https://download.geofabrik.de/), по причине скорости загрузки с данного репозитория для данного руководства.**</color> | <fc #00a2e8>**:&1: Примечание: В этом руководстве файлы ".osm.pbf" загружается с альтернативных, а не с официальных зеркал (https://download.geofabrik.de/), по причине скорости загрузки с данного репозитория для данного руководства.**</fc> |
\\ | \\ |
<color #22b14c>**:&2: Последовательность: Сейчас мы загрузим 3 небольшие карты (georgia, moldova и azerbaijan), произведем их слияние (для понимания и наглядного примера слияния) и с ними продолжим установку и настройку сервера. Так-же загрузим небольшую карту (andorra) для примера дозагрузки карт в базу и конечно карты Europe (28.9 GB) и Asia (13.1 GB). Europe и Asia поставим на слияние и загрузим в базу в конце статьи, на уже подготовленный нами и проверенный (рабочий) сервер.**</color> | <fc #22b14c>**:&2: Последовательность: Сейчас мы загрузим 3 небольшие карты (georgia, moldova и azerbaijan), произведем их слияние (для понимания и наглядного примера слияния) и с ними продолжим установку и настройку сервера. Так-же загрузим небольшую карту (andorra) для примера дозагрузки карт в базу и конечно карты Europe (28.9 GB) и Asia (13.1 GB). Europe и Asia поставим на слияние и загрузим в базу в конце статьи, на уже подготовленный нами и проверенный (рабочий) сервер.**</fc> |
<code> | <code> |
wget https://wwoss.ru/openstreetmap/europe/europe-sub-region/georgia-latest.osm.pbf | wget https://wwoss.ru/openstreetmap/europe/europe-sub-region/georgia-latest.osm.pbf |
{{:software:linux_server:tile_map_server_wold_20.04.4_75.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_75.png?|}} |
\\ | \\ |
* <color #ed1c24>**Обратите внимание на параметр -c (--create) при импорте через osm2pgsql. | * <fc #ed1c24>**Обратите внимание на параметр -c (--create) при импорте через osm2pgsql. |
* С этим параметром удаляется вся существующая информация с таблиц.**</color> | * С этим параметром удаляется вся существующая информация с таблиц.**</fc> |
\\ | \\ |
<color #00a2e8>**:&2: Дополнение: Откроем второе окно программы Putty и поставим слияник карт Europe и Asia, чтобы к концу статьи у нас уже был объедененный файл "eurasia.osm.pbf"**</color> | <fc #00a2e8>**:&2: Дополнение: Откроем второе окно программы Putty и поставим слияник карт Europe и Asia, чтобы к концу статьи у нас уже был объедененный файл "eurasia.osm.pbf"**</fc> |
<code> | <code> |
cd ~/data | cd ~/data |
| |
====Догрузка карт в базу данных==== | ====Догрузка карт в базу данных==== |
<color #ed1c24>**:&9: Внимание!: Этот шаг выполняеся только в случае необходимости дозагрузки в готовую базу данных дополнительных файлов, в нашем случае сейчас пропустим этот подраздел, перейдем в радел [[software:linux_server:tile_map_server_22.04.4|"Создание индексов"]] и вернемся сюда в конце статьи при уже настроенном сервере. (этот шаг указан в этом разделе т.к команды эдинтичные с разницей в способе загрузки (%%--create/--append%%)).**</color>\\ | <fc #ed1c24>**:&9: Внимание!: Этот шаг выполняеся только в случае необходимости дозагрузки в готовую базу данных дополнительных файлов, в нашем случае сейчас пропустим этот подраздел, перейдем в радел [[software:linux_server:tile_map_server_22.04.4|"Создание индексов"]] и вернемся сюда в конце статьи при уже настроенном сервере. (этот шаг указан в этом разделе т.к команды эдинтичные с разницей в способе загрузки (%%--create/--append%%)).**</fc>\\ |
* Следующая команда загрузит файл карты "andorra" в уже существующую базу данных. | * Следующая команда загрузит файл карты "andorra" в уже существующую базу данных. |
<code> | <code> |
osm2pgsql -d gis --append --slim -G --hstore --tag-transform-script ~/src/openstreetmap-carto/openstreetmap-carto.lua -C 64000 --number-processes 8 -S ~/src/openstreetmap-carto/openstreetmap-carto.style ~/data/andorra-latest.osm.pbf | osm2pgsql -d gis --append --slim -G --hstore --tag-transform-script ~/src/openstreetmap-carto/openstreetmap-carto.lua -C 64000 --number-processes 8 -S ~/src/openstreetmap-carto/openstreetmap-carto.style ~/data/andorra-latest.osm.pbf |
</code> | </code> |
* **Если вам необходимо сделать импорт ещё нескольких стран, то вместо -c указывайте параметр -a (<color #ed1c24>--append</color>).** | * **Если вам необходимо сделать импорт ещё нескольких стран, то вместо -c указывайте параметр -a (<fc #ed1c24>--append</fc>).** |
Командные опции: | Командные опции: |
* <color #22b14c>-d gis</color> | * <fc #22b14c>-d gis</fc> |
* База данных, с которой нужно работать (раньше gis была по умолчанию, теперь нужно указать). | * База данных, с которой нужно работать (раньше gis была по умолчанию, теперь нужно указать). |
* <color #22b14c>--create</color> | * <fc #22b14c>--create</fc> |
* Загружает данные в пустую базу данных, а не пытается добавить их в существующую (иначе --append). | * Загружает данные в пустую базу данных, а не пытается добавить их в существующую (иначе --append). |
* <color #22b14c>--slim</color> | * <fc #22b14c>--slim</fc> |
* osm2pgsql может использовать разные макеты таблиц; «тонкие» таблицы работают для рендеринга. | * osm2pgsql может использовать разные макеты таблиц; «тонкие» таблицы работают для рендеринга. |
* <color #22b14c>-G</color> | * <fc #22b14c>-G</fc> |
* Определяет, как обрабатываются мультиполигоны. | * Определяет, как обрабатываются мультиполигоны. |
* <color #22b14c>--hstore</color> | * <fc #22b14c>--hstore</fc> |
* Позволяет тегам, для которых нет явных столбцов базы данных, использоваться для рендеринга. | * Позволяет тегам, для которых нет явных столбцов базы данных, использоваться для рендеринга. |
* <color #22b14c>--tag-transform-script</color> | * <fc #22b14c>--tag-transform-script</fc> |
* Определяет сценарий lua, используемый для обработки тегов. Это простой способ обработки тегов OSM до того, как их обработает сам стиль, что значительно упрощает логику стиля. | * Определяет сценарий lua, используемый для обработки тегов. Это простой способ обработки тегов OSM до того, как их обработает сам стиль, что значительно упрощает логику стиля. |
* <color #22b14c>-C 4000</color> | * <fc #22b14c>-C 4000</fc> |
* Выделено 4,0 Гб памяти osm2pgsql для процесса импорта. Если у вас меньше памяти, вы можете попробовать меньшее число, а если процесс импорта завершится из-за нехватки памяти, вам нужно будет попробовать меньшее число или меньший размер карты OSM. | * Выделено 4,0 Гб памяти osm2pgsql для процесса импорта. Если у вас меньше памяти, вы можете попробовать меньшее число, а если процесс импорта завершится из-за нехватки памяти, вам нужно будет попробовать меньшее число или меньший размер карты OSM. |
* <color #22b14c>--number-processes 2</color> | * <fc #22b14c>--number-processes 2</fc> |
* Используйте 2 ЦП. Если у вас есть больше доступных ядер, вы можете использовать больше. | * Используйте 2 ЦП. Если у вас есть больше доступных ядер, вы можете использовать больше. |
* <color #22b14c>-S</color> | * <fc #22b14c>-S</fc> |
* Создайте столбцы базы данных в этом файле (на самом деле они не изменились по сравнению с «openstreetmap-carto») | * Создайте столбцы базы данных в этом файле (на самом деле они не изменились по сравнению с «openstreetmap-carto») |
* <color #22b14c>~/src/openstreetmap-carto/openstreetmap-carto.style ~/data/planet-latest.osm.pbf</color> | * <fc #22b14c>~/src/openstreetmap-carto/openstreetmap-carto.style ~/data/planet-latest.osm.pbf</fc> |
* Место сохранения и файл данных для загрузки. | * Место сохранения и файл данных для загрузки. |
| |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_54.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_54.png?|}} |
* сообщаем Apache о «mod_tile» редактируя файл mod_tile.conf добавляя следующую строку <color #ed1c24>**LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so**</color> | * сообщаем Apache о «mod_tile» редактируя файл mod_tile.conf добавляя следующую строку <fc #ed1c24>**LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so**</fc> |
<code> | <code> |
sudo nano /etc/apache2/conf-available/mod_tile.conf | sudo nano /etc/apache2/conf-available/mod_tile.conf |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_61.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_61.png?|}} |
* вставляем следующие строки между строками <color #00a2e8>«ServerAdmin»</color> и <color #00a2e8>«DocumentRoot»</color> | * вставляем следующие строки между строками <fc #00a2e8>«ServerAdmin»</fc> и <fc #00a2e8>«DocumentRoot»</fc> |
| |
<code> | <code> |
* проверим наш Apache набрав в браузере адрес нашего виртуального сервера (в нашем случае: http://192.168.1.132/) | * проверим наш Apache набрав в браузере адрес нашего виртуального сервера (в нашем случае: http://192.168.1.132/) |
{{:software:linux_server:tile_map_server_wold_20.04.4_65.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_65.png?|}} |
* **<color #ed1c24>Дальше не продолжаем если не дождались загрузки данных в базу и не осуществили после этого [[software:linux_server:tile_map_server_worl_20.04.4#Создание индексов|Создание индексов]]</color>** | * **<fc #ed1c24>Дальше не продолжаем если не дождались загрузки данных в базу и не осуществили после этого [[software:linux_server:tile_map_server_worl_20.04.4#Создание индексов|Создание индексов]]</fc>** |
| |
=====Запуск рендера в первый раз===== | =====Запуск рендера в первый раз===== |
{{:software:linux_server:tile_map_server_wold_20.04.4_89.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_89.png?|}} |
* Мы видим на карте отображение 3х государств (georgia, moldova и azerbaijan), которые мы объеденили в один файл в разделе [[software:linux_server:tile_map_server_worl_20.04.4#Загрузка данных|Загрузка данных]]. Остановим ренден и загрузим небольшую карту "andorra", размером 2Mb в существующую карту используя команду (см. описание в разделе [[software:linux_server:tile_map_server_worl_20.04.4#Догрузка карт в базу данных|Догрузка карт в базу данных]]) | * Мы видим на карте отображение 3х государств (georgia, moldova и azerbaijan), которые мы объеденили в один файл в разделе [[software:linux_server:tile_map_server_worl_20.04.4#Загрузка данных|Загрузка данных]]. Остановим ренден и загрузим небольшую карту "andorra", размером 2Mb в существующую карту используя команду (см. описание в разделе [[software:linux_server:tile_map_server_worl_20.04.4#Догрузка карт в базу данных|Догрузка карт в базу данных]]) |
* Команда остановки работающего процесса <color #22b14c>**CTRL+C**</color>, далее останавливаем рендер | * Команда остановки работающего процесса <fc #22b14c>**CTRL+C**</fc>, далее останавливаем рендер |
<code> | <code> |
systemctl stop renderd | systemctl stop renderd |
* В окне веб-браузера найдем наше новое государство. Т.к. оно очень маленькое, то искать его будем в строке браузера по координатам плиток "#7/39.428/1.725" (в меньших масштабах такие маленькие государства не отображаютя, а мы его взяли для примера догрузки) | * В окне веб-браузера найдем наше новое государство. Т.к. оно очень маленькое, то искать его будем в строке браузера по координатам плиток "#7/39.428/1.725" (в меньших масштабах такие маленькие государства не отображаютя, а мы его взяли для примера догрузки) |
{{:software:linux_server:tile_map_server_wold_20.04.4_94.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_94.png?|}} |
<color #22b14c>**:&2: Примечание:Иногда рендер идет с командой, т.е. без sudo -u 'eva'**</color> | <fc #22b14c>**:&2: Примечание:Иногда рендер идет с командой, т.е. без sudo -u 'eva'**</fc> |
<code> | <code> |
renderd -f -c /usr/local/etc/renderd.conf | renderd -f -c /usr/local/etc/renderd.conf |
</code> | </code> |
* Убидившись в работоспособности нашего сервера, научившись соединять файлы карт, загружать новые и дополнять в базе данных файлы карт, продолжим настройку сервера и подготовку к загрузке большого файла eurasia.osm.pbf (>40Gb), который к этому моменту уже должен подготовиться. | * Убидившись в работоспособности нашего сервера, научившись соединять файлы карт, загружать новые и дополнять в базе данных файлы карт, продолжим настройку сервера и подготовку к загрузке большого файла eurasia.osm.pbf (>40Gb), который к этому моменту уже должен подготовиться. |
* Останавливаем работающий процесс <color #22b14c>**CTRL+C**</color>, и далее останавливаем рендер | * Останавливаем работающий процесс <fc #22b14c>**CTRL+C**</fc>, и далее останавливаем рендер |
<code> | <code> |
systemctl stop renderd | systemctl stop renderd |
* Загрузим максимольно приближенный масштаб карты. Если у вам это получилось, значит сервер настроен правильно. | * Загрузим максимольно приближенный масштаб карты. Если у вам это получилось, значит сервер настроен правильно. |
{{:software:linux_server:tile_map_server_wold_20.04.4_105.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_105.png?|}} |
* Проверяем завершение слияние нашего файла <color #22b14c>**eurasia.osm.pbf**</color> (во втором окне консоли должен быть завершенный процесс и ожидание новых команд) | * Проверяем завершение слияние нашего файла <fc #22b14c>**eurasia.osm.pbf**</fc> (во втором окне консоли должен быть завершенный процесс и ожидание новых команд) |
{{:software:linux_server:tile_map_server_wold_20.04.4_106.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_106.png?|}} |
* Проверим размер файла eurasia.osm.pbf после слияния | * Проверим размер файла eurasia.osm.pbf после слияния |
</code> | </code> |
{{:software:linux_server:tile_map_server_wold_20.04.4_109.png?|}} | {{:software:linux_server:tile_map_server_wold_20.04.4_109.png?|}} |
* Следующая команда с параметром <color #ed1c24>**--create**</color> сотрет все данные в нашей базе данных и загрузит файл карты eurasia. Процесс достаточно длительный и займет очень много времени (примерно >15-17 часов, в зависимости от комплектации сервера) | * Следующая команда с параметром <fc #ed1c24>**--create**</fc> сотрет все данные в нашей базе данных и загрузит файл карты eurasia. Процесс достаточно длительный и займет очень много времени (примерно >15-17 часов, в зависимости от комплектации сервера) |
<code> | <code> |
cd ~/data | cd ~/data |