Инструменты пользователя

Инструменты сайта


software:linux_server:tile_map_server_22.04.4

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
software:linux_server:tile_map_server_22.04.4 [2024/08/04 22:48] – [Настройка Apache] vladpolskiysoftware:linux_server:tile_map_server_22.04.4 [2025/02/01 09:47] (текущий) – внешнее изменение 127.0.0.1
Строка 7: Строка 7:
   * **[[hardware:ddr4_ecc_reg_64gb|256GB DDR4 3200MHz DIMM ECC Reg Micron]]**   * **[[hardware:ddr4_ecc_reg_64gb|256GB DDR4 3200MHz DIMM ECC Reg Micron]]**
   * **[[software:linux_server:ubuntu_server|ОС Ubuntu Server 24.04 LTS]]**   * **[[software:linux_server:ubuntu_server|ОС Ubuntu Server 24.04 LTS]]**
- <color #7092be>**Все ниже написанное относиться к Ubuntu Server 24.04 (Noble Numbat) и протестированы в августе 2024 года.**</color>+ <fc #7092be>**Все ниже написанное относиться к Ubuntu Server 24.04 (Noble Numbat) и протестированы в августе 2024 года.**</fc>
  
 =====Общая теория=====  =====Общая теория===== 
- <color #7092be>**Tile Server OSM**</color> представляет собой набор программ и библиотек, которые работают вместе для создания тайлового (плиточного) сервера. Он состоит из 5 основных компонентов: + <fc #7092be>**Tile Server OSM**</fc> представляет собой набор программ и библиотек, которые работают вместе для создания тайлового (плиточного) сервера. Он состоит из 5 основных компонентов: 
   * **mod_tile**   * **mod_tile**
   * **renderd**   * **renderd**
Строка 17: Строка 17:
   * **postgresql/postgis**   * **postgresql/postgis**
  Postgresql/postgis - базы данных. Mod_tile — это модуль apache, который обслуживает кэшированные тайлы и решает, какие тайлы нуждаются в повторном рендеринге — либо потому, что они еще не кэшированы, либо потому, что они устарели. Mapnik — это программная библиотека, которая осуществляет реальный рендеринг с использованием открытого рендеринга.\\    Postgresql/postgis - базы данных. Mod_tile — это модуль apache, который обслуживает кэшированные тайлы и решает, какие тайлы нуждаются в повторном рендеринге — либо потому, что они еще не кэшированы, либо потому, что они устарели. Mapnik — это программная библиотека, которая осуществляет реальный рендеринг с использованием открытого рендеринга.\\  
- <color #7092be>**Предполагается, что вы запускаете все от пользователя без регистрации root через «sudo». Имя пользователя без root, повторяемое по умолчанию, — «alisa». Если вы указываете иного пользователя, то вам необходимо будет заменить во всех командах на свое имя и добавить его в группу пользователей, которые могут использовать sudo для получения root-прав. Из вашей обычной учетной записи пользователя без регистрации root.**</color>+ <fc #7092be>**Предполагается, что вы запускаете все от пользователя без регистрации root через «sudo». Имя пользователя без root, повторяемое по умолчанию, — «alisa». Если вы указываете иного пользователя, то вам необходимо будет заменить во всех командах на свое имя и добавить его в группу пользователей, которые могут использовать sudo для получения root-прав. Из вашей обычной учетной записи пользователя без регистрации root.**</fc>
 =====Обновление программного обеспечения===== =====Обновление программного обеспечения=====
 Устанавливаем и обновляем Ubuntu Устанавливаем и обновляем Ubuntu
Строка 462: Строка 462:
 \\   \\  
 Командные опции: Командные опции:
-  * <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/russia-latest.osm.pbf</color>+  * <fc #22b14c>~/src/openstreetmap-carto/openstreetmap-carto.style ~/data/russia-latest.osm.pbf</fc>
   * Место сохранения и файл данных для загрузки.   * Место сохранения и файл данных для загрузки.
 \\   \\  
Строка 572: Строка 572:
 </code> </code>
 {{:software:linux_server:tile_map_server_24.04._57.png?|}} {{:software:linux_server:tile_map_server_24.04._57.png?|}}
-  * нажимаем последовательно **<color #22b14c>CTRL+0</color>** , **<color #22b14c>ENTER</color>**  для сохранения и  **<color #22b14c>CTRL+X</color>** для выхода из редактора  +  * нажимаем последовательно **<fc #22b14c>CTRL+0</fc>** , **<fc #22b14c>ENTER</fc>**  для сохранения и  **<fc #22b14c>CTRL+X</fc>** для выхода из редактора  
  
  
Строка 615: Строка 615:
  
  
-  * вставляем строку **<color #22b14c>LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so</color>** в тело файла (в нашем случае это пустой файл) +  * вставляем строку **<fc #22b14c>LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so</fc>** в тело файла (в нашем случае это пустой файл) 
-  * нажимаем последовательно **<color #22b14c>CTRL+0</color>** , **<color #22b14c>ENTER</color>**  для сохранения и  **<color #22b14c>CTRL+X</color>** для выхода из редактора  +  * нажимаем последовательно **<fc #22b14c>CTRL+0</fc>** , **<fc #22b14c>ENTER</fc>**  для сохранения и  **<fc #22b14c>CTRL+X</fc>** для выхода из редактора  
 {{:software:linux_server:tile_map_server_24.04._61.png?|}} {{:software:linux_server:tile_map_server_24.04._61.png?|}}
  
Строка 635: Строка 635:
 </code> </code>
 {{:software:linux_server:tile_map_server_24.04._64.png?|}} {{:software:linux_server:tile_map_server_24.04._64.png?|}}
-  * вставляем следующин строки в тело файла между строками <color #00a2e8>«ServerAdmin»</color> и <color #00a2e8>«DocumentRoot»</color+  * вставляем следующин строки в тело файла между строками <fc #00a2e8>«ServerAdmin»</fc> и <fc #00a2e8>«DocumentRoot»</fc
 <code> <code>
 LoadTileConfigFile /etc/renderd.conf LoadTileConfigFile /etc/renderd.conf
Строка 644: Строка 644:
 ModTileMissingRequestTimeout 30 ModTileMissingRequestTimeout 30
 </code> </code>
-  * нажимаем последовательно **<color #22b14c>CTRL+0</color>** , **<color #22b14c>ENTER</color>**  для сохранения и  **<color #22b14c>CTRL+X</color>** для выхода из редактора  +  * нажимаем последовательно **<fc #22b14c>CTRL+0</fc>** , **<fc #22b14c>ENTER</fc>**  для сохранения и  **<fc #22b14c>CTRL+X</fc>** для выхода из редактора  
 {{:software:linux_server:tile_map_server_24.04._65.png?|}} {{:software:linux_server:tile_map_server_24.04._65.png?|}}
 \\   \\  
Строка 665: Строка 665:
   * проверим наш Apache набрав в браузере адрес нашего виртуального сервера (в нашем случае: http://192.168.1.64/)   * проверим наш Apache набрав в браузере адрес нашего виртуального сервера (в нашем случае: http://192.168.1.64/)
 {{:software:linux_server:tile_map_server_24.04._70.png?|}} {{:software:linux_server:tile_map_server_24.04._70.png?|}}
-  * <color #ed1c24>Дальше не продолжаем если не дождались загрузки данных в базу и Создание индексов</color>+\\   
 +Перечень команд работы с сервисом рендер  
 +  * sudo systemctl start renderd 
 +  * sudo systemctl restart renderd 
 +  * sudo systemctl enable renderd 
 +  * sudo systemctl status renderd 
 +  * sudo systemctl stop renderd 
 +  * sudo systemctl daemon-reload 
 +\\   
 +Перезапустим и провеим статус сервиса 
 +<code> 
 +sudo systemctl daemon-reload 
 +sudo systemctl enable renderd 
 +sudo systemctl restart renderd 
 +sudo systemctl status renderd 
 +</code> 
 +{{:software:linux_server:tile_map_server_24.04._79.png?|}} 
 +<details> 
 +<summary>«Настройки конфигов»</summary> 
 +<code> 
 +sudo nano /etc/renderd.conf 
 +sudo -u 'alisa' renderd -f -c /etc/renderd.conf 
 +sudo renderd -f -c /etc/renderd.conf 
 +sudo renderd -f 
 + 
 + 
 +renderd.service 
 +systemctl start renderd.service 
 +systemctl enable renderd.service 
 +systemctl status renderd.service 
 +systemctl status 
 + 
 +sudo systemctl start renderd 
 +sudo systemctl restart renderd 
 +sudo systemctl enable renderd 
 +sudo systemctl status renderd 
 +sudo systemctl stop renderd 
 +sudo systemctl daemon-reload 
 + 
 +sudo service renderd start 
 + 
 +sudo chown alisa /run/renderd/ -R 
 +sudo chown alisa /var/cache/renderd/tiles/ -R 
 + 
 + 
 + 
 +sudo apt install renderd 
 + 
 + 
 +sudo chown alisa /home/alisa/src/openstreetmap-carto/ -R 
 +sudo chown alisa /home/alisa/src/openstreetmap-carto/mapnik.xml 
 + 
 + 
 + 
 +sudo nano /etc/renderd.conf 
 +[ajt] 
 +URI=/hot/ 
 +TILEDIR=/var/lib/mod_tile 
 +XML=/home/alisa/src/openstreetmap-carto/mapnik.xml 
 +HOST=localhost 
 +TILESIZE=256 
 +MAXZOOM=20 
 + 
 +sudo nano /etc/apache2/conf-available/mod_tile.conf 
 +LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so 
 + 
 +sudo nano /etc/apache2/sites-available/000-default.conf 
 +LoadTileConfigFile /etc/renderd.conf 
 +ModTileRenderdSocketName /var/run/renderd/renderd.sock 
 +# Timeout before giving up for a tile to be rendered 
 +ModTileRequestTimeout 0 
 +# Timeout before giving up for a tile to be rendered that is otherwise missing 
 +ModTileMissingRequestTimeout 30 
 + 
 +sudo nano ~/src/mod_tile/debian/renderd.init 
 + 
 +sudo nano /usr/lib/systemd/system/renderd.service 
 + 
 +[Unit] 
 +Description=Renderd 
 +After=network.target auditd.service 
 + 
 +[Service] 
 +Type=forking 
 +ExecStart=/etc/init.d/renderd start 
 +ExecReload=/etc/init.d/renderd restart 
 +ExecStop=/etc/init.d/renderd stop 
 +Environment=G_MESSAGES_DEBUG=all 
 + 
 +[Install] 
 +WantedBy=multi-user.target 
 + 
 + 
 + 
 +[Unit] 
 +Description=Daemon that renders map tiles using mapnik 
 +Documentation=man:renderd 
 +After=network.target auditd.service 
 + 
 +[Service] 
 +ExecStart=/usr/bin/renderd -f 
 +User=alisa 
 + 
 +[Install] 
 +WantedBy=multi-user.target 
 +</code> 
 +</details> 
 +  * <fc #ed1c24>Дальше не продолжаем если не дождались загрузки данных в базу и Создание индексов</fc> 
 =====Запуск рендера в первый раз===== =====Запуск рендера в первый раз=====
 запустим renderd, чтобы попытаться отрендерить некоторые плитки. Сначала мы запустим его на переднем плане, чтобы видеть любые ошибки по мере их возникновения: запустим renderd, чтобы попытаться отрендерить некоторые плитки. Сначала мы запустим его на переднем плане, чтобы видеть любые ошибки по мере их возникновения:
Строка 675: Строка 783:
 {{:software:nas:osm_420_87.png?650|}} {{:software:nas:osm_420_87.png?650|}}
  
-  * Если все это работает, нажмите <color #00a2e8>control-c</color>, чтобы завершить процесс рендеринга переднего плана. +  * Если все это работает, нажмите <fc #00a2e8>control-c</fc>, чтобы завершить процесс рендеринга переднего плана. 
-  * <color #ed1c24>при возникновении необходимости остановить renderd</color>+  * <fc #ed1c24>при возникновении необходимости остановить renderd</fc>
 <code> <code>
 systemctl stop renderd systemctl stop renderd
Строка 687: Строка 795:
   * на Synology DS720+ такого шока нет и все происходит быстрее в 3-4 раза   * на Synology DS720+ такого шока нет и все происходит быстрее в 3-4 раза
 {{:software:nas:osm_420_86.png?650|}} {{:software:nas:osm_420_86.png?650|}}
-  * <color #00a2e8>Не знаю почему, но при наличии папки renderd и прав на неё, система ругается на её отсутствие (проверено при 3х установках на Synology Nas. Повторно выполним эти команды...</color>+  * <fc #00a2e8>Не знаю почему, но при наличии папки renderd и прав на неё, система ругается на её отсутствие (проверено при 3х установках на Synology Nas. Повторно выполним эти команды...</fc>
   * создаем папку renderd   * создаем папку renderd
 <code> <code>
Строка 713: Строка 821:
  
  
-  * нажимаем **<color #22b14c>i</color>** и меняем в строке RUNASUSER **<color #22b14c>renderaccount</color>** на ваше имя пользователя  (в нашем случае это alisa) +  * нажимаем **<fc #22b14c>i</fc>** и меняем в строке RUNASUSER **<fc #22b14c>renderaccount</fc>** на ваше имя пользователя  (в нашем случае это alisa) 
-  * нажимаем последовательно **<color #22b14c>esc</color>** , **<color #22b14c>shift + :</color>** , **<color #22b14c>w</color>** ,  **<color #22b14c>q</color>** , **<color #22b14c>!</color>** для сохранения и выхода из редактора  +  * нажимаем последовательно **<fc #22b14c>esc</fc>** , **<fc #22b14c>shift + :</fc>** , **<fc #22b14c>w</fc>** ,  **<fc #22b14c>q</fc>** , **<fc #22b14c>!</fc>** для сохранения и выхода из редактора  
 {{:software:nas:osm_420_91.png|}} {{:software:nas:osm_420_91.png|}}
-  * нажимаем **<color #22b14c>enter</color>**+  * нажимаем **<fc #22b14c>enter</fc>**
   * скопируем это в системный каталог   * скопируем это в системный каталог
 <code> <code>
Строка 820: Строка 928:
 \\   \\  
 https://github.com/openstreetmap/mod_tile/blob/master/docs/build/building_on_ubuntu.md https://github.com/openstreetmap/mod_tile/blob/master/docs/build/building_on_ubuntu.md
 +\\  
 +https://switch2osm.org/serving-tiles/manually-building-a-tile-server-ubuntu-24-04-lts/
 +\\  
 +https://www.linuxbabe.com/linux-server/osm-openstreetmap-tile-server-ubuntu-22-04
 +\\  
 +https://ircama.github.io/osm-carto-tutorials/kosmtik-ubuntu-setup/
 +\\  
 +https://www.linuxbabe.com/debian/openstreetmap-osm-tile-server-debian-12-bookworm
 +\\  
 +https://github.com/openstreetmap/mod_tile
 +\\  
  
software/linux_server/tile_map_server_22.04.4.1722800901.txt.gz · Последнее изменение: 2024/08/04 22:48 — vladpolskiy