Didattica





9 gennaio, 2010 | di in » Didattica

Introduzione

A Febbraio del 2006 – tantissimo tempo fa … – ho scritto un piccolo post sull’installazione di MapServer in ambiente Windows su un sistema in cui fosse già installato un webserver (Apache in particolare).

E’ stato un post che ha ricevuto molte letture, ma che ha anche subito qualche “legnata tecnologica”. Lo avevo scritto infatti non dentro il motore di questo blog (WordPress), ma dentro Writely.
Cosa è Writely? E’ nientepopodimeno che l’applicazione online su cui è basato l’editor di testo di Google Docs, comprata per l’appunto da Google proprio in quell’anno.
Ho scritto l’articolo, ho inserito anche delle immagini d’aiuto alla comprensione del testo, ed ho pubblicato tutto su questo blog con un click; il testo è stato contestualmente archiviato sui server di TANTO, mentre le immagini sono rimaste sui server di Writely. Questi non sono stati spenti subito e, per diverso tempo, questo vecchio glorioso articolo non ha subito alcuna conseguenza dal passaggio di Writely a Google. Spenti i server, sono sparite le immagini ed in qualche modo anche la leggibilità del post in oggetto. Ho provato a ripescarle dall’Internet Archive Wayback Machine, ma senza fortuna.

In ogni caso dovevo rimediare da tempo. Avevo rimosso dalla memoria il problema (sorry :-) ), e un commento recente mi ha messo nuovamente davanti alla cruda realtà (grazie riccardo). L’articolo inoltre è datato anche nei contenuti, e valeva la pena dargli una rinfrescata.

MapServer su Windows

Installare MapServer è cosa semplice in qualsiasi ambiente (forse il massimo è su Linux); può sembrare meno semplice farlo su server in produzione con diversi servizi già installati e configurati, specie se vogliamo usare degli installer grafici e magari chiudere gli occhi.

I file binari per Windows sono contenuti in questi tre pacchetti:

In questa guida sfrutteremo FWTools, di cui abbiamo parlato diverse volte.

Installazione passo passo di MapServer

Il prerequisito è quello di installare e scaricare FWTools per Windows dal sito ufficiale, e poi lanciarne l’installazione. Io di solito lo faccio scegliendo le opzioni visibili in figura.

install fwtools on windows

I file vengono estratti di default nella cartella “C:\Programmi\FWToolsx.x.x“. L’eseguibile di MapServer – mapserv.exe – è uno dei file a corredo di FWTools e lo troverete nella cartella “C:\Programmi\FWToolsx.x..x\bin“.
Copiatelo nella cartella CGI di Apache (o in una qualsiasi cartella in cui il web server può lanciare applicazioni di questo tipo). Sul PC da cui scrivo la cartella è “C:\Programmi\Apache Software Foundation\Apachex.x\cgi-bin”

Copiare l’eseguibile non basta perché ci sono diverse dipendenze da rispettare. Per soddisfarle basterebbe copiare tutti i file contenuti in “C:\Programmi\FWToolsx.x..x\bin” nella cartella CGI, ma non è una procedura “pulita”. E’ più corretto impostare delle variabili d’ambiente.

La prima è il PATH, in cui inseriremo proprio la cartella “C:\Programmi\FWToolsx.x..x\bin“. Per farlo basta aprire le “Proprietà del sistema” di Windows  e cliccare su “Variabili d’ambiente”.

variabili ambiente windows

Tra quelle già definite troverete proprio PATH. Modificatela inserendo nel campo “Valore variabile”, a fine riga, il percorso della cartella bin di FWTools: inserite prima un “;”.

windows path variabile 2

C’è da impostare ancora una variabile d’ambiente in quanto MapServer deve “sapere” dove sono i file in cui sono definiti i sistemi di proiezione. La cartella in questo caso è C:\Programmi\FWToolsx.x.x\proj_lib” e la variabile  è PROJ_LIB.

Questa (di solito) non è – come PATH – già esistente e la dovrete creare cliccando sul tasto “Nuovo” ed inserire i valori come nella figura sottostante.

PROJ_LIB MapServer Windows

A questo punto riavviate il PC, aprite il browser e lanciate un URL di questo tipo: http://vostrosito/cgi-bin/mapserv.exe

Se avrete come risposta la stringa “No query information to decode. QUERY_STRING is set, but empty.“, vorrà dire che tutto è andato a buon fine.

Non vi resta che creare delle belle applicazioni di web-mapping.

Post correlati:

  1. Installare MapServer su Windows con Apache
  2. Un articolo sullo sviluppo di applicazioni basate su Google Maps
  3. Un’eccellente articolo sulla cartografia online e sulle soluzioni disponibili per produrla (oltre Google Maps)
  4. Pubblicare facilmente una carta raster sul web
  5. Il tasto destro per alleggerire un po’ il lavoro di chi si occupa di GIS (su Windows e su Linux)
Attenzione! Questo è un articolo di almeno un anno fa!
I contenuti potrebbero non essere più adeguati ai tempi!
  • riccardo

    Funziona tutto. La procedura è corretta. La mia cartella del web server Apache è questa:
    C:\wamp\bin\apache\Apache2.2.11\cgi-bin

    [Rispondi]

  • riccardo

    Problemi con la configurazione dei path nei file html del tutorial:
    MIA CONFIGURAZIONE:
    (IL FILE EXE)
    C:\wamp\bin\apache\Apache2.2.11\cgi-bin\mapserv.exe

    (LOCALHOST: qui dentro c’è tutto il tutorial compreso index.html e itasca.map)
    C:\wamp\www\mapserv_prova\

    (SEGUE CODICE DI index.html)

    MapServer Itasca Application

    function configure() {
    var template = document.demo.template.options[document.demo.template.selectedIndex].value;

    // EDIT THE NEXT 2 LINES TO MATCH YOUR SETUP
    var snippet = "IMAGEPATH '/wamp/www/mapserv_prova/docs_maps/tmp/'";
    snippet += " IMAGEURL '/tmp/'";
    snippet += " TEMPLATE " + template;
    document.demo.map_web.value = snippet;

    if(template.indexOf("frame") != -1) document.demo.action = "frames.html";
    if(template.indexOf("dhtml") != -1) document.demo.action = "frames_dhtml.html";
    }

    MapServer Itasca Application (ms v5.0)

    This demonstration application will take you through various levels of complexity. Starting with a basic application that
    allows a user to pan/zoom and change layers we add:

    dynamically configured scalebars
    javascript-based panning
    query results to a frame
    and finally, a DHTML rubber-band zoom/query capabilty

    The base data is the old-reliable Itasca dataset that we know and love...

    Basic Application
      -- Adds second scalebar
      -- Adds pan controls
      -- Adds frames
      -- Adds dhtml rubber-band box

    This site running MapServer v. 5.0

    A parte la fatica per trovare il path giusto nell’action del form (quello sembra funzionare), stessa cosa per il path di itasca.map, ma ora la pagina mi segnala questo errore:loadWeb(): Unknown identifier. Parsing error near (IMAGEPATH):(line 1)
    Ho provato path assoluti, relativi..ma nulla. Mi sai dire dove sta il problema?

    [Rispondi]

  • http://aborruso.spaziogis.it Andrea Borruso

    Ciao Riccardo,
    sono contento di esserti stato utile per l’installazione di MapServer.

    Il tutorial di cui parli, è quello scaricabile dal sito di MS4W (MapServer Itasca Demo Application)?

    Per il problema di cui parli, gli spazi adeguati dove scrivere sono la mailing list degli user di MS4W[1] e quella degli user di MapServer[2].

    Troverai grande competenza e disponibilità.

    Questo non è un customer service, ne un forum, ne appunto una mailing list.

    Proverò comunque a dare un’occhiata al tuo problema in settimana (sempre che il tutorial sia quello che ti ho scritto sopra).

    Ciao,

    a

    [1] http://bit.ly/4zoATk
    [2] http://bit.ly/8GTkBX

    [Rispondi]

  • gimmyx

    salve a tutti, complimenti per questo breve tutorial, per me importantissimo, alla fine di tutti i passaggi,
    a me dava questo errore:
    Impossibile trovare il punto d’ingresso free_defaults della procedura nella libreria di collegamento dinamico LIBMYSQL.dll, che ho risolto copiando la libreria dentro c:\windows\system32
    Lo scrivo nel caso possa servire a qualcuno.

    [Rispondi]

  • Maria Pia

    ciao a tutti, sto provando ad utilizzare Mapserver e Fusion per visualizzare mappe e raster ecw. Da quanto ho capito sia OSGeo4W che MS4W non supportano i raster ecw mentre, seguendo la procedura illustrata in questo articolo sono riuscita a visualizzare il mio raster direttamente nel browser. Quindi l’installazione di FWTools e di Mapserver è corretta e funziona! A questo punto ho installato Fusion seguendo le indicazioni del sito ufficiale http://trac.osgeo.org/fusion/wiki/MapServerTutorial, ma evidentemente manca ancora qualcosa perchè non riesco a far visualizzare nessuna mappa. Mi chiedo se nell’installazione di FWTOOLS manca ancora qualche libreria o qualche parametro di configurazione da impostare per poter utilizzare Fusion. Qualcuno sa darmi delle indicazioni?

    [Rispondi]

  • http://aborruso.spaziogis.it Andrea Borruso

    Ciao Maria Pia,
    mi fa piacere che questo vecchio post ti sia tornato utile per risolvere un “pezzetto” del tup problema.

    Purtroppo però nessuno di noi ha esperienza con Fusion.
    Da quello che capisco, se MapServer è installato e funziona (e mi sembra il tuo caso), la tua attenzione si deve concentrare su Fusion.
    Verificare ad esempio che tutti i valori di variabili che fanno riferimento ad un percorso, siano congruenti con il tuo ambiente di lavoro.

    A costo di sembrarti banale, ti consiglio di scrivere sulla mailing list “user” di fusion, di scrivergli i dettagli del tuo ambiente di lavoro, e descriveregli il tuo errore.

    ciao,

    a

    [Rispondi]

  • Maria Pia

    Ciao Andrea, grazie per la tua risposta! In realtà ho scoperto che mentre FWTOOLS include Python MapScript, Fusion richiede PHP MapScript. Mi sai dire se esiste un modo per aggiungere PHP MapScript a FWTOOLS? ciao.

    [Rispondi]

  • http://www.linkedin.com/in/antoniofalciano Antonio Falciano

    Piuttosto che FWTools userei direttamente MS4W (MapServer for Windows), dato che contiene già i binari di PHP Mapscript ed è semplicissimo da installare. Inoltre, esiste anche un package specifico per Fusion che potrebbe fare al caso tuo. Ciao

    [Rispondi]

  • Maria Pia

    Ma con MS4W non posso utilizzare i raster ecw!

    [Rispondi]

  • http://blog.spaziogis.it/author/afalciano/ Antonio Falciano

    Vero, il supporto di ECW in MS4W è stato disabilitato nelle beta della v.3 per problemi legati alle licenze… Tuttavia, disponendo della licenza server di ECW, anche con un vecchio MS4W puoi fare quello che devi… Hope this helps! ;)

    [Rispondi]

  • Antonio M.

    Salve Andrea,
    il mio problema è il seguente. In realtà l’installazione in locale è andata per il meglio, adesso è ora del grande balzo,ovvero andare in rete. Qualche consiglio su che tipo di server utilizzare affidandosi ad un provider? O dici che è meglio mettere su un server proprio e configurare quello li? Che ci dici dall’alto della tua esperienza?

    Grazie a presto

    [Rispondi]

    Andrea Borruso Risposta:

    Salve Antonio,
    non ho esperienza su provider che forniscono MapSever preinstallato, o che ti lascino la libertà di farlo. Ad oggi, per questo tipo di servizi ho sempre usato dei server “miei” e mi sono mosso in autonomia.
    Ti consiglio di girare la richiesta di hosting sulla lista degli utenti di MapServer – http://bit.ly/ncP7Nu – dove troverai sicuramente le risposte che cerchi.

    Ti ringrazio dal basso ;)

    [Rispondi]

  • Antonio M.

    Ho fatto il grande passo, sono andato su Aruba VPS da 13 euro al mese, fiducioso di alcune discussioni su free-gis italia. In realtà credo di essere a buon punto, ho configurato Apache col pacchetto MS4W e adesso ho provato a configurare mapserv.exe con FWTools come spiegato sopra. Ma quando vado a chiamare mapserv da http://mioip/cgi-bin/mapserv.exe mi risponde con un bell’Internal Server Error…

    Aiutooooooooo!!!!

    E devo ancora vedere come farci partire sopra il pmapper

    [Rispondi]

  • http://aborruso.spaziogis.it Andrea Borruso

    Ciao Antonio,
    visto che stai usando MS4W, usa il MapServer che trovi lì dentro già pronto, “cotto” e (quasi) mangiato.

    Non dovresti avere alcun tipo di errore, e non c’è nulla da installare.

    Fammi sapere,

    a

    [Rispondi]

  • Pompeo

    Salve,
    mi dispiace disturbarla ma avrei bisogno di una dritta per l’installazione di mapserver sul mio pc:
    caratteristiche sistema operativo: Windows 7, 64 bit webmaster: wampserver (mi dà icona verde);
    ho seguito la proceduta da lei indicata per l’utilizzo di FWtools2.4.7, copiato mapserver.exe in apache,
    modificato Path (%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Programs Files (x86)\FWTools2.4.7\bin)
    e creato proj_lib.

    Quando faccio il test lanciando la URL da lei suggerita ottengo:

    Not Found
    The requested URL /cgi-bin/mapserv.exe was not found on this server.
    http://www.vostrosito.com

    Tuttavia se lancio mapserver dal promt le cose mi sembra siano in linea con quanto riportato sui tutorial di mapserver.

    La ringrazio anticipatamente

    [Rispondi]

  • http://aborruso.spaziogis.it Andrea Borruso

    Salve Pompeo,
    ho scritto http://vostrosito/cgi-bin/mapserv.exe come esempio di URL generico.
    Se stai lavorando sul tuo PC prova a scrivere http://localhost/cgi-bin/mapserv.exe e facci sapere.

    Grazie a te,

    a

    [Rispondi]

  • Pompeo

    E’ tutto ok!!
    Grazie ancora per la pazienza con cui sopporti domandi sciocche.
    In verità avevo inserito localhost, ma inserendo il percorso completo di cgi-bin ed avendo come risultato l’apertura di una pagina di google.

    [Rispondi]


TANTO non rappresenta una testata giornalistica ai sensi della legge n. 62 del 7.03.2001, in quanto non viene aggiornato con una precisa e determinata periodicita'. Pertanto, in alcun modo puo' considerarsi un prodotto editoriale.