#1 Thu 17 June 2010 09:50
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Mapserver - Openlayers Problème de proxy
Bonjour,
Il ne me manque plus que cette pierre à mon édifice pour que mon serveur fonctionne, malheureusement en local ou sur le réseau tout se passe bien mais dès que je tente d'ouvrir une couche WFS par le web j'ai cette erreur avec firebug:
500 Internal Server Error
Quand j'ouvre les log de apache j'ai cette erreur :
[client 192.168.0.254] (13) Permission denied: exe of '/usr/lib/cgi-bin/proxy.cgi' failed,
Client 192.168.0.254 étant ma freebox
pourtant j'ai bien déclarés mon site dans proxy.cgi :
allowedHosts = ['www.monsite.com']
Je ne comprends pas
Merci
Hors ligne
#2 Thu 17 June 2010 10:15
- Lionel B
- Participant actif
- Lieu: Macon
- Date d'inscription: 5 Sep 2005
- Messages: 83
Re: Mapserver - Openlayers Problème de proxy
Bonjour,
et avec un
chmod +x /usr/lib/cgi-bin/proxy.cgi
?
Hors ligne
#3 Thu 17 June 2010 11:02
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Merci pour la réponse.
Ça ne fonctionne toujours pas.
Hors ligne
#4 Thu 17 June 2010 11:32
- Lionel B
- Participant actif
- Lieu: Macon
- Date d'inscription: 5 Sep 2005
- Messages: 83
Re: Mapserver - Openlayers Problème de proxy
le message d'erreur est toujours le même ?
Hors ligne
#5 Thu 17 June 2010 11:49
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Non une nouvelle erreur est apparue :
[client 192.168.0.254] (8)Exec format error:
J'ai trouvés sur le net qu'il fallait supprimer le ScriptAlias pour ne laisser que Alias :
Depuis apache ne semble plus lancer d' erreur mais ma carte ne s'affiche plus, mêmes pas mes couches WMS, alors qu'elle s'affichait avant. A la place j'ai des dalles roses. Firebug met à coté de l'adresse, qui est en noir et plus en rouge,
304 Not Modified
155
Voici mon proxy.cgi
Code:
!/usr/bin/env python """This is a blind proxy that we use to get around browser restrictions that prevent the Javascript from loading pages not on the same server as the Javascript. This has several problems: it's less efficient, it might break some sites, and it's a security risk because people can use this proxy to browse the web and possibly do bad stuff with it. It only loads pages via http and https, but it can load any content type. It supports GET and POST requests.""" import urllib2 import cgi import sys, os # Designed to prevent Open Proxy type stuff. allowedHosts = ['www.monsite.com', '192.168.0.11', 'www.openlayers.org', 'openlayers.org', 'labs.metacarta.com', 'world.freemap.in', 'prototype.openmnnd.org', 'geo.openplans.org', 'sigma.openplans.org', 'demo.opengeo.org', 'www.openstreetmap.org', 'sample.azavea.com', 'v-swe.uni-muenster.de:8080'] method = os.environ["REQUEST_METHOD"] if method == "POST": qs = os.environ["QUERY_STRING"] d = cgi.parse_qs(qs) if d.has_key("url"): url = d["url"][0] else: url = "http://www.openlayers.org" else: fs = cgi.FieldStorage() url = fs.getvalue('url', "http://www.openlayers.org") try: host = url.split("/")[2] if allowedHosts and not host in allowedHosts: print "Status: 502 Bad Gateway" print "Content-Type: text/plain" print print "This proxy does not allow you to access that location (%s)." % (host,) print print os.environ elif url.startswith("http://") or url.startswith("https://"): if method == "POST": length = int(os.environ["CONTENT_LENGTH"]) headers = {"Content-Type": os.environ["CONTENT_TYPE"]} body = sys.stdin.read(length) r = urllib2.Request(url, body, headers) y = urllib2.urlopen(r) else: y = urllib2.urlopen(url) # print content type header i = y.info() if i.has_key("Content-Type"): print "Content-Type: %s" % (i["Content-Type"]) else: print "Content-Type: text/plain" print print y.read() y.close() else: print "Content-Type: text/plain" print print "Illegal request." except Exception, E: print "Status: 500 Unexpected Error" print "Content-Type: text/plain" print print "Some unexpected error occurred. Error text was:", E
Merci
Dernière modification par geobrie (Thu 17 June 2010 11:53)
Hors ligne
#6 Thu 17 June 2010 11:50
Re: Mapserver - Openlayers Problème de proxy
Bonjour,
Je ne comprend pas pourquoi l'ip de votre Freebox apparait dans les logs. Quelle est l'architecture de votre appli ? Le client et le serveur sont sur le même serveur ? Tu tentes d'utiliser un service WFS extérieure ?
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#7 Thu 17 June 2010 11:58
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Bonjour,
Le service WFS que j'utilise est chez moi, mon serveur est connecté sur la freebox et mes clients sont connecter sur un routeur netgear qui est branché à la freebox et qui gère un disque dur externe de données accessible au réseau. Mais même quand je connecte un client directement sur la freebox le résultat est le même.
Hors ligne
#8 Fri 18 June 2010 19:04
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Bonsoir,
Sur ce coup j'ai vraiment besoin d'aide car je suis coincés et tout le travail en amont n'est pas valorisé. J'ai fouiné sur le net, mais il n'y a pas de réel tuto, il n'y que des bride de solution qui apparemment ne fonctionne pas chez moi.
Un grand merci pour votre aide future.
Hors ligne
#9 Fri 18 June 2010 21:27
Re: Mapserver - Openlayers Problème de proxy
Bonjour,
Un schéma en PJ qui résume ce que j'ai compris de votre architecture.
Merci de préciser où sont les incompréhensions dans le schéma et où sont les problèmes.
En espérant qu'on comprenne mieux pour pouvoir vous aider
[img]http://georezo.net/forum/attachment.php?item=3626&download=1[/img]
Cordialement
ThomasG
Dernière modification par ThomasG (Fri 18 June 2010 21:28)
Hors ligne
#10 Sat 19 June 2010 11:26
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Merci pour ce travail
Quand je tape l'adresse il me retourne le script proxy.cig ????
[img]Schemat serveur web[/img]
Dernière modification par geobrie (Sat 19 June 2010 12:30)
Hors ligne
#11 Sat 19 June 2010 11:38
Re: Mapserver - Openlayers Problème de proxy
Bonjour,
Quand je tape l'adresse il me retourne le script proxy.cig ????
Vous tapez l'adresse depuis quelle poste dans le schéma que j'ai fait? Quelle url tapez vous ?
Pouvez-vous aussi confirmer l'architecture? J'ai mis des points d'interrogation là où je ne suis pas sûr d'avoir compris.
Merci
ThomasG
Dernière modification par ThomasG (Sat 19 June 2010 11:38)
Hors ligne
#12 Sat 19 June 2010 12:33
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Je n'ai pas été assez rapide, voici mon infrastructure :
En local tout fonctionne bien et même sur le réseau local c'est à dire http://192.168.0.11/
Mais pas sur le web c'est à dire http://www.monsite.com.
Dernière modification par geobrie (Sat 19 June 2010 12:37)
Hors ligne
#13 Sat 19 June 2010 12:53
Re: Mapserver - Openlayers Problème de proxy
Bonjour,
Pouvez-vous essayer en rajoutant l'IP public dans les hosts autorisé ?
Il y a un truc qui me chiffone, si le proxy et le service WFS sont sur la même machine, le proxy est inutil non ?
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#14 Sat 19 June 2010 12:58
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Dès que j'enlève le proxy ça ne marche quand local et pas par le web. Ça ne pourrait pas venir de mon fournisseur d'adresse web (domaine.fr) qui bloque sachant que chez lui je suis en navigation "secrète", il cache mon ip web et toute les adresses de mes pages web ?
Dernière modification par geobrie (Sat 19 June 2010 13:17)
Hors ligne
#15 Sat 19 June 2010 13:24
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Bonjour y,
B
Pouvez-vous essayer en rajoutant l'IP public dans les hosts autorisé ?
Y.
A quel niveau parce que elle est déjà autorisée dans mon hosts ?
Dernière modification par geobrie (Sat 19 June 2010 13:25)
Hors ligne
#16 Sat 19 June 2010 13:48
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Donc j'ai refais un test en retirant le proxy.cgi.
En local pas de soucis toutes mes couches sont visible avec mes infobulle pour la couche WFS mais par l'adresse web je n'ai plus que la couche WMS avec cette erreur :
<wfs:FeatureCollection xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd http://mapserver.gis.umn.edu/mapserver http://192.168.0.11/cgi-bin/mapserv?map … ">
−
<gml:boundedBy>
−
<gml:Box srsName="EPSG:27582">
−
<gml:coordinates>
561094.254193,2387088.672278 769187.462242,2613651.163595
</gml:coordinates>
</gml:Box>
</gml:boundedBy>
−
<!--
WARNING: FeatureId item 'NAME' not found in typename 'lots'.
-->
Hors ligne
#17 Sat 19 June 2010 13:51
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Rectification l'erreur annoncée apparait quand même en locale, ça ne doit pas être lié au problème d'affichage, apparemment j'ai deux problèmes. Malgré cette erreur, en locale tout marche correctement.
A quoi correspond la valeur FeatureId ? Dans mon script elle resemble à ça :
"gml_featureid" "NAME"
La valeur "NAME" est elle générique ou doit elle correspondre à une valeur précise dans ma base de donnée ?
Quand j'analyse Firebug dans l'entête:
Ça sa ne passe pas :
Host 192.168.0.11
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Referer http://83.241.100.150/htdocs/openlayers.html
Origin http://83.241.100.150
Et ça sa passe :
Host 192.168.0.11
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Referer http://192.168.0.11/htdocs/openlayers.html
Ça vient peut être de postgreSQL car la couche WFS à des droit que n'a pas la couche WMS ?
Dernière modification par geobrie (Sat 19 June 2010 14:54)
Hors ligne
#18 Sat 19 June 2010 16:57
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Une petite idée du problème ?
Hors ligne
#19 Sat 19 June 2010 21:49
Re: Mapserver - Openlayers Problème de proxy
Bonjour,
Pour moi,
Code:
"gml_featureid" "clé_primaire"
Généralement, la clé primaire est gid si vous êtes sous PostreSQL/Postgis sinon la clé pour un SHP dépend de votre structure (et est en majuscule dans mes souvenirs)
NAME n'est pas générique à ma connaissance.
Cordialement
ThomasG
Hors ligne
#20 Sun 20 June 2010 11:26
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Bonjour,
Merci, je vais tenté de créer cette clé primaire pour ma table, ça réglera déjà un problème. Après je m'attaquerais aux problème d'accès de mes couches WFS par le Web. Pouvais vous me confirmer que ayant toute sur le serveur (les Mapfils, les script openLayers et les tables postgreSQL) je n'ai pas besoin de proxy ?
Merci
Hors ligne
#21 Mon 21 June 2010 06:40
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: Mapserver - Openlayers Problème de proxy
Bonjour,
Je penses avoir résolu mon problème. Comme souvent la solution était devant mes yeux, il suffisait de remplacer l'adresse réseau locale par l'adresse réseau publique dans le script OpenLayers et dans le Mapfil. J'ai testés chez moi par l'adresse web (www.monsite.com) et ça marche, je n'ai plus qu'a confirmer en testant à l'extérieur, mais je penses que c'est la solution. Je vous remercie pour toute votre aide qui m'a permis de mieux comprendre mon projet et d'en arriver là, je vous tient au courant de mais tests extérieurs.
A bientôt
Hors ligne