[Gfoss] wms mapserver e openlayer

Salve a tutti.
Sto cercando di visualizzare dati postgis attraverso mapserver con openlayer. Ho provato realizzando un server WFS ma ho avuto una serie di problemi. Sono passato allora ad un server WMS. L'overlay di un layer postgis su un base layer OSM è filata via abbastanza liscia. Ovviamente mi sono bloccato subito dopo sull'interrogazione del layer. Infatti il getfeatureinfo mi restituisce una serie di errori. Ho utilizzato una funzione che ho trovato in rete e che posto qui di seguito

map.events.register('click', map, function (e) {
     var url ="http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map";
       + "?REQUEST=GetFeatureInfo"
       + "&EXCEPTIONS=application/vnd.ogc.se_xml"
       + "&BBOX=" + map.getExtent().toBBOX()
       + "&X=" + e.xy.x
       + "&Y=" + e.xy.y
       + "&INFO_FORMAT=text/plain"
       + "&QUERY_LAYERS=bioitaly_v"
       + "&LAYERS=bioitaly_v"
       + "&FEATURE_COUNT=1"
       + "&SRS=EPSG:900913"
       + "&STYLES="
       + "&WIDTH=" + map.size.w
       + "&HEIGHT=" + map.size.h;
     window.open(url,"GetFeatureInfo","location=0,status=1,scrollbars=1,width=600,height=150");
   });

Quando vado a cliccare su un elemento mi si apre la nuova finestra ma mi restituisce un errore

mapserv(): Web application error. Traditional BROWSE mode requires a TEMPLATE in the WEB section, but none was provided.

Se faccio una GetFeature request, questo è quello che ottengo

<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd&quot;&gt;
<ServiceExceptionReport version="1.1.1">
<ServiceException code="LayerNotQueryable">
msWMSFeatureInfo(): WMS server error. Requested layer(s) are not queryable.
</ServiceException>
</ServiceExceptionReport>

Immagino quindi che ci sia qualcosa di sbagliato nel .map ma non riesco a capire cosa. Oltre a non aver evidentemente configurato un template web, ma come sarebbe questo template? Una oagina html qualsiasi? I proxy mi sembra di averlo settato (OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";). Dove sto sbagliando?

mapserv(): Web application error. Traditional BROWSE mode requires a
TEMPLATE in the WEB section, but none was provided.

http://mapserver.org/ogc/wms_server.html

"And for each LAYER:
...
Layer TEMPLATE (required for GetFeatureInfo requests)
..."

On Thu, Nov 04, 2010 at 04:19:56PM +0100, Francesco Geri wrote:

="http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map&quot;;
      + "?REQUEST=GetFeatureInfo"

Francesco, la URL sopra e' invalida: contiene due volte il carattere '?'.
Lo vuoi una sola volta, poi separi gli argomenti con '&'.

// URL senza parametri
var url = "http://localhost/cgi-bin/mapserv?&quot;;
// Parametro1
url .= "map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map";
// Separatore
url .= "&";
// Parametro2
url .= "REQUEST=GetFeatureInfo";

e cosi' via..

--strk;

  () Free GIS & Flash consultant/developer
  /\ http://strk.keybit.net/services.html

Il 04/11/2010 16:19, Francesco Geri ha scritto:

Salve a tutti.
Sto cercando di visualizzare dati postgis attraverso mapserver con openlayer. Ho provato realizzando un server WFS ma ho avuto una serie di problemi. Sono passato allora ad un server WMS. L'overlay di un layer postgis su un base layer OSM è filata via abbastanza liscia. Ovviamente mi sono bloccato subito dopo sull'interrogazione del layer. Infatti il getfeatureinfo mi restituisce una serie di errori. Ho utilizzato una funzione che ho trovato in rete e che posto qui di seguito

map.events.register('click', map, function (e) {
    var url ="http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map&quot;;

      + "?REQUEST=GetFeatureInfo"
      + "&EXCEPTIONS=application/vnd.ogc.se_xml"
      + "&BBOX=" + map.getExtent().toBBOX()
      + "&X=" + e.xy.x
      + "&Y=" + e.xy.y
      + "&INFO_FORMAT=text/plain"
      + "&QUERY_LAYERS=bioitaly_v"
      + "&LAYERS=bioitaly_v"
      + "&FEATURE_COUNT=1"
      + "&SRS=EPSG:900913"
      + "&STYLES="
      + "&WIDTH=" + map.size.w
      + "&HEIGHT=" + map.size.h;
    window.open(url,"GetFeatureInfo","location=0,status=1,scrollbars=1,width=600,height=150");

  });

Quando vado a cliccare su un elemento mi si apre la nuova finestra ma mi restituisce un errore

mapserv(): Web application error. Traditional BROWSE mode requires a TEMPLATE in the WEB section, but none was provided.

Se faccio una GetFeature request, questo è quello che ottengo

<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd&quot;&gt;
<ServiceExceptionReport version="1.1.1">
<ServiceException code="LayerNotQueryable">
msWMSFeatureInfo(): WMS server error. Requested layer(s) are not queryable.
</ServiceException>
</ServiceExceptionReport>

Ciao Francesco,
ti conviene usare OpenLayers.Control.WMSGetFeatureInfo per effettuare questo tipo di operazione
piuttosto che scrivere tutto a mano.

Luca

In effetti è uno stato uno dei miei primi tentativi ma probabilmente sbaglio qualcosa nel codice. All'inizio, dato che si trattava di un controllo, lo avevo brutalmente aggiunto con map.addcontrol. Poi:

   var infoControls = { click: new OpenLayers.Control.WMSGetFeatureInfo(
                 { url: "http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map&quot;,
                   title: 'Query sic',
                   layers: [bioitaly_v],
                   queryVisible: true,
                   infoFormat: 'application/vnd.ogc.gml' } ) };

il risultato è che non si vede più niente, osm compreso.

Per quanto riguarda il web template ho letto la documentazione di mapserver ma quando dice che si deve inserire per ogni layer il tag TEMPLATE non specifica come questo va fatto (il DUMP va messo TRUE e infatti è ok). Allora ho fatto una paginetta html e ho provato a mettergli quella (tipo TEMPLATE "template.html") ma il risultato è che mi dice (con lo script precedente):

Content-type: text/html isValidTemplate(): Web application error. Missing magic string, /var/www/template.html doesn't look like a MapServer template.

Il 04/11/2010 16:38, Luca Casagrande ha scritto:

Il 04/11/2010 16:19, Francesco Geri ha scritto:

Salve a tutti.
Sto cercando di visualizzare dati postgis attraverso mapserver con openlayer. Ho provato realizzando un server WFS ma ho avuto una serie di problemi. Sono passato allora ad un server WMS. L'overlay di un layer postgis su un base layer OSM è filata via abbastanza liscia. Ovviamente mi sono bloccato subito dopo sull'interrogazione del layer. Infatti il getfeatureinfo mi restituisce una serie di errori. Ho utilizzato una funzione che ho trovato in rete e che posto qui di seguito

map.events.register('click', map, function (e) {
    var url ="http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map&quot;;

      + "?REQUEST=GetFeatureInfo"
      + "&EXCEPTIONS=application/vnd.ogc.se_xml"
      + "&BBOX=" + map.getExtent().toBBOX()
      + "&X=" + e.xy.x
      + "&Y=" + e.xy.y
      + "&INFO_FORMAT=text/plain"
      + "&QUERY_LAYERS=bioitaly_v"
      + "&LAYERS=bioitaly_v"
      + "&FEATURE_COUNT=1"
      + "&SRS=EPSG:900913"
      + "&STYLES="
      + "&WIDTH=" + map.size.w
      + "&HEIGHT=" + map.size.h;
    window.open(url,"GetFeatureInfo","location=0,status=1,scrollbars=1,width=600,height=150");

  });

Quando vado a cliccare su un elemento mi si apre la nuova finestra ma mi restituisce un errore

mapserv(): Web application error. Traditional BROWSE mode requires a TEMPLATE in the WEB section, but none was provided.

Se faccio una GetFeature request, questo è quello che ottengo

<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd&quot;&gt;
<ServiceExceptionReport version="1.1.1">
<ServiceException code="LayerNotQueryable">
msWMSFeatureInfo(): WMS server error. Requested layer(s) are not queryable.
</ServiceException>
</ServiceExceptionReport>

Ciao Francesco,
ti conviene usare OpenLayers.Control.WMSGetFeatureInfo per effettuare questo tipo di operazione
piuttosto che scrivere tutto a mano.

Luca
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
474 iscritti al 18.9.2010

Per quanto riguarda il web template ho letto la documentazione di mapserver
ma quando dice che si deve inserire per ogni layer il tag TEMPLATE non
specifica come questo va fatto (il DUMP va messo TRUE e infatti è ok).
Allora ho fatto una paginetta html e ho provato a mettergli quella (tipo
TEMPLATE "template.html") ma il risultato è che mi dice (con lo script
precedente):

a quanto ricordo quello specifico template viene richiesto se usi come
mime/type per getfeatureinfo il tipo html, se specifichi text/plain
lui ti genera un file di testo standard, ignora il contenuto del tag e
funziona tutto.
in ogni caso basati sugli esempi che trovi qui per capire come
configurare correttamente mapserver come wms :
http://ms-ogc-workshop.maptools.org/

Il 04/11/2010 17:20, Francesco Geri ha scritto:

In effetti è uno stato uno dei miei primi tentativi ma probabilmente sbaglio qualcosa nel codice. All'inizio, dato che si trattava di un controllo, lo avevo brutalmente aggiunto con map.addcontrol. Poi:

  var infoControls = { click: new OpenLayers.Control.WMSGetFeatureInfo(
                { url: "http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map&quot;,

                  title: 'Query sic',
                  layers: [bioitaly_v],
                  queryVisible: true,
                  infoFormat: 'application/vnd.ogc.gml' } ) };

il risultato è che non si vede più niente, osm compreso.

Prova a definirlo così

info = new OpenLayers.Control.WMSGetFeatureInfo({
                   url: 'http://localhost/',
                     title: 'Identify features by clicking',
         layers: [layer],
                     queryVisible: false,
         infoFormat:'text/plain'

map.addControl(info)
info.activate()
info.events.on("getfeatureinfo":showInfo)

function showInfo(evt){
...
}

Ciao
Luca

Ciao,
sto cercando di seguire i vari consigli ma credo che la mia ignoranza con il javascript sta facendo la differenza (in negativo). Per chè appena provo a mettere questo spezzone di codice

     info = new OpenLayers.Control.WMSGetFeatureInfo({
         url: 'http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map’,
         title: 'Identify features by clicking',
         layers: [bioitaly_v],
         queryVisible: 'false',
         infoFormat:'text/plain'
     })

Mi sparisce tutto?

Il 04/11/2010 19:47, Luca Casagrande ha scritto:

Il 04/11/2010 17:20, Francesco Geri ha scritto:

In effetti è uno stato uno dei miei primi tentativi ma probabilmente sbaglio qualcosa nel codice. All'inizio, dato che si trattava di un controllo, lo avevo brutalmente aggiunto con map.addcontrol. Poi:

  var infoControls = { click: new OpenLayers.Control.WMSGetFeatureInfo(
                { url: "http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map&quot;,

                  title: 'Query sic',
                  layers: [bioitaly_v],
                  queryVisible: true,
                  infoFormat: 'application/vnd.ogc.gml' } ) };

il risultato è che non si vede più niente, osm compreso.

Prova a definirlo così

info = new OpenLayers.Control.WMSGetFeatureInfo({
                        url: 'http://localhost/',
                         title: 'Identify features by clicking',
                 layers: [layer],
                         queryVisible: false,
                 infoFormat:'text/plain'

map.addControl(info)
info.activate()
info.events.on("getfeatureinfo":showInfo)

function showInfo(evt){
...
}

Ciao
Luca
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
474 iscritti al 18.9.2010

sto cercando di seguire i vari consigli ma credo che la mia ignoranza con il
javascript sta facendo la differenza (in negativo). Per chè appena provo a

il fatto che l'errore ti venga da mapserver (TEMPLATE null) significa
che comunque l'errore è lato server, e openlayers potrà aiutarti ben
poco.
Ti consiglio di preparare un url "finto" (ne avevi postato uno tu
all'inizio) e chiamalo dal browser, cercando i farlo funzionare (segui
gli esempi e la documentazione di mapserver alla lettera, è fatta
bene). Una volta sistemata la parte server, divertiti col javascript
:smiley:

Firebug che dice?

Ciao
Luca
Il 05/11/2010 11:51, Francesco Geri ha scritto:

Ciao,
sto cercando di seguire i vari consigli ma credo che la mia ignoranza con il javascript sta facendo la differenza (in negativo). Per chè appena provo a mettere questo spezzone di codice

    info = new OpenLayers.Control.WMSGetFeatureInfo({
        url: 'http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map’,

        title: 'Identify features by clicking',
        layers: [bioitaly_v],
        queryVisible: 'false',
        infoFormat:'text/plain'
    })

Mi sparisce tutto?

Il 04/11/2010 19:47, Luca Casagrande ha scritto:

Il 04/11/2010 17:20, Francesco Geri ha scritto:

In effetti è uno stato uno dei miei primi tentativi ma probabilmente sbaglio qualcosa nel codice. All'inizio, dato che si trattava di un controllo, lo avevo brutalmente aggiunto con map.addcontrol. Poi:

  var infoControls = { click: new OpenLayers.Control.WMSGetFeatureInfo(
                { url: "http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map&quot;,

                  title: 'Query sic',
                  layers: [bioitaly_v],
                  queryVisible: true,
                  infoFormat: 'application/vnd.ogc.gml' } ) };

il risultato è che non si vede più niente, osm compreso.

Prova a definirlo così

info = new OpenLayers.Control.WMSGetFeatureInfo({
                        url: 'http://localhost/',
                         title: 'Identify features by clicking',
                 layers: [layer],
                         queryVisible: false,
                 infoFormat:'text/plain'

map.addControl(info)
info.activate()
info.events.on("getfeatureinfo":showInfo)

function showInfo(evt){
...
}

Ciao
Luca

C'è sicuramente un errore lato server. Proverò a seguire alla lettera i doc di mapserver e vediamo. Firebug.....sinceramente non so bene neanche dove guardare (io l'ho sempre usato solo per scopiazzare i fogli di stile :slight_smile: ).

Il 05/11/2010 12:02, Luca Casagrande ha scritto:

iao,
sto cercando di seguire i vari consigli ma credo che la mia ignoranza con il javascript sta facendo la differenza (in negativo). Per chè appena provo a mettere questo spezzone di codic

Diego ha ragione, tuttavia devi essere sicuro di fare la richiesta in modo corretto.
Firebug è fondamentale per questo tipo di problemi..attiva console,net e ricarica la pagina..dovresti vedere l'errore in basso a destra.
http://www.youtube.com/watch?v=2xxfvuZFHsM
Ciao
Luca
Il 05/11/2010 12:45, Francesco Geri ha scritto:

C'è sicuramente un errore lato server. Proverò a seguire alla lettera i doc di mapserver e vediamo. Firebug.....sinceramente non so bene neanche dove guardare (io l'ho sempre usato solo per scopiazzare i fogli di stile :slight_smile: ).

Il 05/11/2010 12:02, Luca Casagrande ha scritto:

iao,
sto cercando di seguire i vari consigli ma credo che la mia ignoranza con il javascript sta facendo la differenza (in negativo). Per chè appena provo a mettere questo spezzone di codic

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
474 iscritti al 18.9.2010

Ok grazie. Un errore risolto: non avevo messo il nome del layer tra apici (scusate!)
Adesso ne ho altri 2....
info.events.on("getfeatureinfo":showInfo)\n

1) missing ) after argument list wms.html (riga 54)
quindi sarebbe all'altezza di info.events.on("getfeatureinfo":showInfo)

2) init is not defined

Il 05/11/2010 12:50, Luca Casagrande ha scritto:

Diego ha ragione, tuttavia devi essere sicuro di fare la richiesta in modo corretto.
Firebug è fondamentale per questo tipo di problemi..attiva console,net e ricarica la pagina..dovresti vedere l'errore in basso a destra.
http://www.youtube.com/watch?v=2xxfvuZFHsM
Ciao
Luca
Il 05/11/2010 12:45, Francesco Geri ha scritto:

C'è sicuramente un errore lato server. Proverò a seguire alla lettera i doc di mapserver e vediamo. Firebug.....sinceramente non so bene neanche dove guardare (io l'ho sempre usato solo per scopiazzare i fogli di stile :slight_smile: ).

Il 05/11/2010 12:02, Luca Casagrande ha scritto:

iao,
sto cercando di seguire i vari consigli ma credo che la mia ignoranza con il javascript sta facendo la differenza (in negativo). Per chè appena provo a mettere questo spezzone di codic

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
474 iscritti al 18.9.2010

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
474 iscritti al 18.9.2010

Allora credo di aver risolto la questione client: firebug non mi da nessun errore. Mi sono ispirato all'esempio
http://www.openlayers.org/dev/examples/getfeatureinfo-popup.html
nel quale la richiesta viene visualizzata in un popup.
Quello che ho capito è che si aggiunge

         eventListeners: {
                 getfeatureinfo: function(event) {
                     map.addPopup(new OpenLayers.Popup.FramedCloud(
                         "chicken",
                         map.getLonLatFromPixel(event.xy),
                         null,
                         event.text,
                         null,
                         true
                     ));
                 }
             }

per creare il popup e poi si attiva con

         map.addControl(info);
         info.activate();

Come dicevo non ho nessun errore, il problema è che in realtà se clicco sugli elementi non succede niente, immagino perchè c'è sempre da risolvere il problema lato server perchè il layer non è queryable. Almeno credo.

Il 05/11/2010 12:50, Luca Casagrande ha scritto:

Diego ha ragione, tuttavia devi essere sicuro di fare la richiesta in modo corretto.
Firebug è fondamentale per questo tipo di problemi..attiva console,net e ricarica la pagina..dovresti vedere l'errore in basso a destra.
http://www.youtube.com/watch?v=2xxfvuZFHsM
Ciao
Luca
Il 05/11/2010 12:45, Francesco Geri ha scritto:

C'è sicuramente un errore lato server. Proverò a seguire alla lettera i doc di mapserver e vediamo. Firebug.....sinceramente non so bene neanche dove guardare (io l'ho sempre usato solo per scopiazzare i fogli di stile :slight_smile: ).

Il 05/11/2010 12:02, Luca Casagrande ha scritto:

iao,
sto cercando di seguire i vari consigli ma credo che la mia ignoranza con il javascript sta facendo la differenza (in negativo). Per chè appena provo a mettere questo spezzone di codic

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
474 iscritti al 18.9.2010

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
474 iscritti al 18.9.2010

Il 05/11/2010 14:27, Francesco Geri ha scritto:

Allora credo di aver risolto la questione client: firebug non mi da nessun errore. Mi sono ispirato all'esempio
http://www.openlayers.org/dev/examples/getfeatureinfo-popup.html
nel quale la richiesta viene visualizzata in un popup.
Quello che ho capito è che si aggiunge

        eventListeners: {
                getfeatureinfo: function(event) {
                    map.addPopup(new OpenLayers.Popup.FramedCloud(
                        "chicken",
                        map.getLonLatFromPixel(event.xy),
                        null,
                        event.text,
                        null,
                        true
                    ));
                }
            }

per creare il popup e poi si attiva con

        map.addControl(info);
        info.activate();

Come dicevo non ho nessun errore, il problema è che in realtà se clicco sugli elementi non succede niente, immagino perchè c'è sempre da risolvere il problema lato server perchè il layer non è queryable. Almeno credo.

Bene..ora, sempre da firebug, apri la tab net e dovresti veder passare la chiamata getfeatureinfo.
Cliccaci con il destro ed aprila in una nuova tab.

Dai che ci siamo :slight_smile:

Non parte nessuna richiesta. Ho provato a fare la verifica con l’esempio di OL e lì effettivamente parte la richiesta GetFeatureInfo

Se fosse un problema lato server (e probabilmente ci sarà anche quello) cmq dovrebbe arrivare una risposta no?

Forse non ho settato bene il proxy?

Forse non ho settato bene il proxy?

in teoria dovresti vedere con firebug la richiesta che lancia il tuo
browser verso il server.
copia l'url e lancialo nel browser "as is", li non hai problemi di
proxy e/o altro e così puoi capire se è il server che non riceve, se
il server riceve ma non risponde, se il client non capisce la risposta
ecc ecc.
come regola generale, non mettere titti i pezzi insieme sperando che
funzioni tutto, ma fai un pezzettino per volta.

Mi risponde questo, nonostante che la richiesta parta in formato text/plain

<HTML>
<HEAD><TITLE>MapServer Message</TITLE></HEAD>
<!-- MapServer version 5.6.5 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=SWF OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=RGBA_PNG INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE -->
<BODY BGCOLOR="#FFFFFF">
mapserv(): Web application error. Traditional BROWSE mode requires a TEMPLATE in the WEB section, but none was provided.
</BODY></HTML>

new OpenLayers.Control.WMSGetFeatureInfo({
url: ‘http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map&’,
title: ‘Identify features by clicking’,
layers: ‘bioitaly_v’,
queryVisible: ‘true’,
infoFormat:‘text/plain’

mapserv(): Web application error. Traditional BROWSE mode requires a
TEMPLATE in the WEB section, but none was provided.

aggiungi comunque ai tuoi layer questa sezione, anche se il text/plain
non se ne fa niente: probabilmente li vuole lo stesso :smiley:

  # data is queryable
  DUMP TRUE

  # query templates for HTML-based queries
  HEADER ../../templates/stub_header.html
  TEMPLATE ../../templates/stub__body.html

crea dei files vuoti con lo stesso nome dentro la cartella templates
della root della tua applicazione mapserver