Buongiorno a tutti, vado dritto al problema!
Su un server Hertzner, su cui gira Debian, ho sviluppato diverse webapp, quelle che mi stanno dando problemi risalgono a diversi anni fa, tutte scritte in php, la libreria usata è OpenLayers 2. Negli anni, pacchetti e distro, sono stati sempre aggiornati e tutto ha funzionato alla perfezione...motivo per cui non è mai stato fatto un refactoring del codice (in realtà, il vero motivo, è che non c'erano fondi per "svecchiare" le app!!!). La struttura generale è la seguente: * distro: Debian stable * apache v. 2.4 * tomcat v. 9 * geoserver v. 2.13 * openlayers 2 * postgresql 13 * postgis 3.1 Stendiamo un velo pietoso sull'utilizzo di openlayers 2, cause di forza maggiore! Tutte le geometrie sono gestite da postgis e servite da geoserver via tomcat. Per la visualizzazione delle mappe le applicazioni utilizzano sia il protocollo wms che wfs (per inserimento/modifica/eliminazione delle geometrie). Da qualche settimana ho notato un problema con le richieste wfs, problema rilevato anche da firebug che mi dà il classico "internal server error", mentre il log di apache dice che: [cgi:error] [pid 7596] [client ::1:52300] AH01215: (8)Exec format error: exec of '/usr/lib/cgi-bin/proxy.cgi' failed: /usr/lib/cgi-bin/proxy.cgi [cgi:error] [pid 7596] [client ::1:52300] End of script output before headers: proxy.cgi In realtà, oltre a non visualizzare le geometrie vettoriali (di seguito un esempio) ubi_mater = new OpenLayers.Layer.Vector("ubi_mater", { strategies: [new OpenLayers.Strategy.BBOX()], protocol: new OpenLayers.Protocol.WFS({ version: wfsConf.version, url: wfsConf.url, featureNS: wfsConf.featureNS, srsName: wfsConf.srsName, geometryName:wfsConf.geometryName, featureType: "ubi_mater", schema: wfsConf.schema+"ubi_mater" }) }); map.addLayer(ubi_mater); le applicazioni mi danno problemi anche con la funzione "OpenLayers.Control.WMSGetFeatureInfo", con la quale mi tiro fuori l'id della geometria che utilizzo per interrogare postgresql e mostrare tutta una serie di info legate alla geometria interrogata, ma al click sulla geometria invece dei dati ho un array vuota: info = new OpenLayers.Control.WMSGetFeatureInfo({ url: 'http://xxxx.xxx.xxx.xxx:8080/geoserver/wms', title: 'Informazioni sui livelli interrogati', queryVisible: true, layers: listalayer, infoFormat: 'application/vnd.ogc.gml', vendorParams: {buffer: 10}, eventListeners: { getfeatureinfo: function(event) { var arr = new Array(); var arrActive = new Array(); var arrArea = new Array(); for (var i = 0; i < event.features.length; i++) { var feature = event.features[i]; var attributes = feature.attributes; var id_ai = attributes.id_geom; var id_area = attributes.id_area; arr.push("area_int_poly.id = "+id_ai); arrArea.push('id_area = '+id_area); } $(".ai:checked").map(function(){arrActive.push('dgn_tpsch = '+$(this).attr('data-tipo'));}); $.ajax({ url: 'inc/popupAi.php', type: 'POST', data: {arr:arr,arrActive:arrActive,arrArea:arrArea}, success: function(data){ console.log(data) $("#result").animate({left:"0px"}).addClass('opened'); $("#resultContent").html(data); } }); } } }); map.addControl(info); info.activate(); Ovviamente apache ha tutti i moduli correttamente abilitati, il file proxy ha i permessi settati su 755, e i vari virtual host hanno tutte le direttive relative all'esecuzione degli script cgi...e ovviamente il codice non è stato recentemente modificato. Vi riporto un esempio[0] di virtual host. Ho provato a fare diverse operazioni, compresa quella di reinstallare e riconfigurare completamente apache (magari c'era qualche configurazione strana!), ho anche provato a replicare tutto sul mio pc, ho provato a modificare i virtual host cambiando il percorso del proxy e inserendo quello di default (/usr/lib/cgi-bin/proxy.cgi), ho cambiato l'intestazione del file proxy indicando python3 come eseguibile da utilizzare, ma il problema persiste. Per completezza di informazioni vi dico che: * se provo ad aprire il link localhost/cgi-bin/proxy.cgi mi dà "internal server error" * se provo ad aprire il proxy.cgi presente nella cartella dell'applicazione specifica mi fa vedere il codice del file, come se non fosse presente il modulo cgi di apache (che ovviamente è abilitato) Consigli? A parte di riscrivere il codice con librerie non obsolete!!!! Grazie a tutti -beppe- [0] <VirtualHost localhost/cembra:80> ServerName localhost/cembra ServerAdmin beppenapo@gmailcom DocumentRoot /var/www/html/cembra ############## mia configurazione ############# <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/html/cembra> Options +Indexes +FollowSymLinks +MultiViews +ExecCGI AllowOverride None AddHandler cgi-script .cgi Require all granted </Directory> ScriptAlias /cgi-bin/ /var/www/html/cembra/cgi-bin/ <Directory /var/www/html/cembra/cgi-bin> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch AddHandler cgi-script .cgi Require all granted </Directory> ProxyPass /geoserver http://xxx.xxx.xxx.xxx:8080/geoserver ProxyPassReverse /geoserver http://xxx.xxx.xxx.xxx:8080/geoserver <Location /geoserver> Require all granted </Location> ############################################### ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> _______________________________________________ [hidden email] 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 hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 764 iscritti al 23/08/2019 |
Free forum by Nabble | Edit this page |