Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: b2l в Jan 11, 2011, 15:42



Титла: apache2 + mod_tile
Публикувано от: b2l в Jan 11, 2011, 15:42
Някой инсталирал ли го е това нещо?


Титла: Re: apache2 + mod_tile
Публикувано от: b2l в Jan 13, 2011, 12:16
Явно никой не е. Лошо няма. Ако все пак някой някога се хване с рендиране на карти, това може да му помогне:
Преди да пуснете mod_tile трябва да имате работещ Mapnik и osm2pgsql. И след това се следват следните стъпки:

Код:
cd /home/user/
svn co http://svn.openstreetmap.org/applications/utils/mod_tile
cd mod_tile

Променяме Makefile така:
Код:
top_dir:=$(shell /usr/bin/apxs2 -q exp_installbuilddir)
- не съм пробвал, но мисля, че дори тази промяна не е нужна.

След това променяме render_config.h файла така:
Код:
#define HASH_PATH "/var/lib/mod_tile"
#define TILE_PATH "/var/www/osm_tiles2"
#define RENDER_CONFIG "/etc/renderd.conf"
#define MAPNIK_PLUGINS "/usr/local/lib/mapnik/input"
#define FONT_DIR "/usr/share/fonts/truetype/ttf-dejavu/"
#define FONT_RECURSE 1

След това променяме renderd.conf файла:
Код:
[renderd]
soketname=/var/run/renderd/renderd.sock
num_threads=4
tile_dir=/var/lib/mod_tile
stats_file=/var/run/renderd/renderd.stats

[mapnik]
plugins_dir=/usr/local/lib/mapnik/input
font_dir=/usr/local/lib/mapnik/fonts
font_dir_recurse=1

[default]
URI=/osm_tiles2/
XML=/root/user/bin/mapnik/osm.xml ;locate your osm.xml file
HOST=tiles.geolocations.com ;your domain name

След това пускаме:
Код:
make && make install

Проверяваме дали файловете renderd.conf и /etc/renderd.conf са еднакви:
Код:
diff renderd.conf /etc/renderd.conf

Както сме в:
Код:
/home/user/mod_tile

копираме mod_tile.conf в директорията на апача където са виртуалните хостове:
Код:
cp mod_tile.conf /etc/apache2/sites-available

След това трябва да активираме модула mod_tile:
Код:
touch /etc/apache2/mods-available/mod_tile.load

В този load файл записваме следното:
Код:
echo "LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so" > /etc/apache2/mods-available/mod_tile.load

Зареждаме създадения модул така:
Код:
a2enmod mod_tile

Самият виртуален хост редактираме така:
Код:
#LoadModule tile_module modules/mod_tile.so
DocumentRoot /var/www
AddTileConfig /osm_tiles2/ default
LoadTileConfigFile /etc/renderd.conf
ModTileTileDir /var/lib/mod_tile
ModTileRenderSocketNmae /var/run/renderd/renderd.sock

След това активираме новия виртуален хост, но преди това ще го преименуваме:
Код:
mv /etc/apache2/sites-available/mod_tile.conf /etc/apache2/sites-available/osm
a2ensite osm

Демона на renderd трябва да бъде стартиран от www-data (или потребителя на апача, ако сте го сменили):
Код:
sudo su www-data
./renderd -f
(-f e опция за DEBUG на renderd демона)

След това рестартираме апача за да зареди новия виртуален хост:
Код:
apache2ctl restart

След тези манипулации ако отворим браузъра и напишем:
http://localhost/osm_tiles2/0/0/0 ($2)
трябва да ни се появи картинка с границите на целия свят. Успех


PS: Не съм описвал местата на който ни трябва root достъп за да изпълним командите, но се надявам да се оправите с тях.
PS2: Във виртуалния хост съм написал само кой неща трябва да се променят. Останалите опции се запазват, или се променят според нашите желания.