Languages

User login


Crear un entorn de desenvolupament de l'aplicació dels mapes de guifi.net amb eclipse+subversion sobre un FC10


Integrant l'entorn de desenvolumanet (Eclipse+Subversion+FC10) amb el mapserver per a obtenir els mapes amb els nodes i les seves connexions.

De moment aquesta guía conté el següent:

  1. Instal·lar els paquets
  2. Instal·lar el CGI del mapserv
  3. Chek out de les aplicacions dels mapes des de l'Eclipse
  4. Instal·lant el servei WMS
  5. Sincronitzant les dades
  6. Instal·lant un cron per a un refresc automàtic

Instalar els paquets

Amb Fedora ja venen tots els paquets necessaris per fer funcionar el mapserver i fer les projeccions integrat amb el mateix apache que hem configurat en l'apartat anterior.

yum -y install mapserver php-mapserver proj-epsg

Veureu que s'instal·len també un munt de dependències. Confirmeu.

Posar el mapserv al cgi-bin

El CGI del mapserv, no sé perquè, el fedira el deixa en el /usr/sbin, quan en realitat volem que s'executi com a CGI, per tant el copiarem al directori dels programes CGI. allà és un bon lloc perquè així el podrà executar qualsevol servidor virtual i ens estalviarem de fer-ne un d'expressament. Per a entorne de producció pot ser convenient tenir-lo en un altre lloc per així preveure que es pugui executar des de màquines diferents:

cp /usr/sbin/mapserv /var/www/cgi-bin

Check out de les aplicacions dels mapes des del repositori subversion de lafarga amb l'eclipse.

És un procés similar al dels mòduls del drupal. En aquest cas però ho farem en un altre directori i cavia alguna petita coseta.

  1. Obrir l'eclipse
    Posar com a workspace:
    /usr/share/drupal/sites/elmeuservidor.guifi.net

  2. Fer servir el mateix projecte per a l'Eclipse que haviem creat abans:

    • Opció "File->New"

    • A "Select wizard" ecollir "SVN->Checkout projects from SVN"

    • Opció "Next"

    • Escollir "Create new repository location"

    • Escriure en la url:

      https://svn.projectes.lafarga.cat/svn/guifi

    • Opció "Next"

    • Desplegar les opcions que apareixen, i escollir "guifimaps"

    • Escollir "Next"

    • Escollir "Check out as a project in the workspace", deixar "modules" com a p"Project Name"

    • Escollir "Next"

    • Deixar activat "Use default workspace location"

    • Escollir "Finnish", això fara el "ceckout" de la darrera versió de la SVN que hi hagi a lafarga.

    Per la resta de configuració de l'Eclipse, ja el teniem configurat d'abans, o sigui que no em de fer-ho altre cop.

Configuració del mòdul guifi.net per a cridar els mapes com a servei WMS

Aneu amb el navegador a la configuració del mòdul de guifi.net des de la url http://elmeuservidor/admin/settings/guifi i poseu-hi en el camp "URL per als seveis de mapes WMS":

http://elmeuservidor.guifi.net/cgi-bin/mapserv?map=/usr/share/drupal/sit...

Sincronitzant els mapes amb la base de dades

Els mapes no tiren directament de la base de dades amb MySQL sino d'uns binaris preparats. Això consumeix molt amenys CPU i permet desacoplar-se en diferents màquines. Primer prepararem els directoris

cd /usr/share/drupal/sites/elmeuservidor.guifi.net
mkdir data
chmod a+rw data
touch /tmp/last_update
chmod a+rw /tmp/last_update

I a continuació, executem l'script de refresc, contra la base de dades real o alguna que tingui informació, i així veiem que pinta nodes i enllaços:

cd /usr/share/drupal/sites/elmeuservidor.guifi.net/guifimaps
php refresh.php > /dev/null 2>&1
cd ../data
rm -rf dlinks/*
rm -rf dnodes/* 
ogr2ogr -f "ESRI Shapefile" dlinks dlinks.gml
ogr2ogr -f "ESRI Shapefile" dnodes dnodes.gml     

... i anem a visualitzar els mapes d'alguna zona amb l'aplicació, anant a zones onsabem que hi ha molts nodes, i veiem que ens els pinta. Si els veiem és que tot ja està be.
Un cop sabem que funciona, i en tant que encara no hi ha cap arxiu de paràmetres, fem una còpia de l'script de refresc "refresh.php" per fer-ne un altre que apunti al entorn de desenvolupament.

cd /usr/share/drupal/sites/elmeuservidor.guifi.net/guifimaps
cp refresh.php refresh.dev.php

L'editem i fem que canvii alla on posa "guifi.net" per el nom del nostre servidor, que és "elmeuservidor.guifi.net". Això ara mateix es dona en les línies 12, 35 i 90. I executem de nou, aquesta vegada amb el nou script, per veure que ens funcioni bé:

cd /usr/share/drupal/sites/elmeuservidor.guifi.net/guifimaps
php refresh.dev.php > /dev/null 2>&1
cd ../data
rm -rf dlinks/*
rm -rf dnodes/* 
ogr2ogr -f "ESRI Shapefile" dlinks dlinks.gml
ogr2ogr -f "ESRI Shapefile" dnodes dnodes.gml     

Ara ja només ens hauria de pintar el que hi ha a l'entorn de desenvolupament.

 

Automatitzant el refresc amb un cron

Tractant-se d'un entorn de desenvolupament, potser ja ens és suficient així, amb la possibilitat de fer refrescs manuals, tanmateix si volem podem automatitzar el refresc com si es tractés d'un entorn de producció, això ho podem fer per exemple a través d'un cron que cada 5 minuts executi:

cd /usr/share/drupal/sites/elmeuservidor.guifi.net/guifimaps
php refresh.dev.php > /dev/null 2>&1
cd ../data
rm -rf dlinks/*
rm -rf dnodes/*
ogr2ogr -f "ESRI Shapefile" dlinks dlinks.gml
ogr2ogr -f "ESRI Shapefile" dnodes dnodes.gml     

...i... voilà! Ja tenim un enorn de desenvolupament amb mapes i tot ;)

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
pablog's picture

 Hola Ramón, ¿cómo puedo

 Hola Ramón, ¿cómo puedo traducir esta entrada al castellano? No me sale el botón traducir por ninguna parte.