RU:Microcosm

From OpenStreetMap Wiki
Jump to navigation Jump to search

ВНИМАНИЕ!!! При использовании PHP версии 5.4.0 и выше необходимо установить расширение sqlite из каталога PECL. До версии 5.4.0 расширение было встроенным.

Microcosm - это картографическая база данных реализованная на PHP. Осовная цель - реализовать API v0.6 на платформе, которую легко и удорбно можно разместить и установить. Она может обрабатывать только небольшие базы данных, в отличае от Rails Port. Все вызовы API поддерживаются, но некоторых функций пока нет. В качестве бэкэнда используется SQLite, но программа спроектирована таким образом, чтобы можно было задействовать в будущем и другие хранилища. Microcosm совместим с JOSM и Merkaartor. Совместимость с Potlatch не тестировалась.

Sqlite должна быть скомпилирована со включенной опцией R*Tree, что используется по умолчанию в некоторых дистрибутивах Linux (например, Debian и Ubuntu). Отметим, в CentOS опция R*Tree не используется по умолчанию. CentOS широко используется для Shared-хостинга, и это делает проблематичным использование Microcosm в данных случаях.

Лицензия simplified BSD. Отправляйте замечания и предложения TimSC (на английском языке).

Проблемы при использовании собственных серверов

Поскольку идентификаторы объектов не зависят от основной базы данных OSM, есть вероятность пересечения ID. Это может произойти при объединении данных баз. Убедитесь, что вы знаете, что делаете перед запуском независимого сервера.

Понимайте юридические последствия того, что вы делаете. Данные, предоставленные в рамках одной лицензии не всегда могут быть загружены на другой сервер, который использует другую лицензию.

Установка

  • Установите веб сервер (например, Apache), PHP и модуль Sqlite для PHP.
  • Загрузите [1] и распакуйте архив на веб-сервере.
  • Используя браузер вызовите AddUser.php и папке "web". Добавьте необходимое число новых пользователей.
  • Ознакомтесь с дополнительными настройками в config.php.
  • Импортируйте начальные данные используя import.php, который может вызываться только из коммандной строки. Используйте что-то вроде:
php import.php map.osm
  • Установите начальные значения для новых changesets, nodes, ways и relations в nextchangesetid.txt, nextnodeid.txt, nextrelationid.txt, nextwayid.txt.
  • Установите разрешения на запись для всех.
  • Настройте свой редактор, чтобы использовать URL вашего API.

Конфигурация для nginx

Сконфигурируйте nginx.conf следующим образом

location ^~ /api {
   fastcgi_pass unix:/var/spool/php-fpm.socket; # PHP-FPM socket
   include        fastcgi_params;
   fastcgi_split_path_info ^(\/api)(.*)$;
   fastcgi_param SCRIPT_FILENAME $document_root/m/microcosm.php;
   fastcgi_param PATH_INFO $fastcgi_path_info;
}

Конфигурация для lighttpd

Сконфигурируйте lighttpd.conf следующим образом

url.rewrite = ( "^/api/(.*)$" => "m/microcosm.php/$1" )

Обновление

Поскольку нет механизмов обновления схемы данных, база данных должна быть экспортирована, затем произведена чистая установка и импортированы данные.

Скачать

Microcosm на Github

[2]

Полезные ссылки

[3] - установка модуля sqlite на php версии 5.4.х.