Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 12 April 2007 12:32

Mobilotek
Participant occasionnel
Lieu: Toulouse
Date d'inscription: 17 Oct 2006
Messages: 26

[Mapserver/Apache]

Bonjour!

Je viens de mettre en place un server wms (en intranet pour l'instant). J'ai donc crée mon mapfile ("test_wms.map"), placé à la racine de c:/

J'aimerai que au lieu d'apeller mon serveur par

Code:

http://192.168.1.99/cgi-bin/mapserv.exe?map=/test_wms.map&

, qui est un peu "barbarde", y acceder par (par exemple):

Code:

http://192.168.1.99/mywms

je pense que c'est possible grace à

Code:

SetEnvIf Request_URI "/cgi-bin/mywms" MS_MAPFILE=/path/to/mymapfile.map

De ce fait, j'ai renommé mon mapserv.exe en mywms.exe, et dans C:\ms4w\Apache\conf\httpd.conf y est mis :

Code:

SetEnvIf Request_URI "/cgi-bin/mywms" MS_MAPFILE=/test_wms.map

pour etre sur, j'ai copié mywms.exe dans le dossier appache (on sait jamais...)

Mais lors de l'appel par l'url :

Code:

http://192.168.1.99/mywms

ou  meme

Code:

http://192.168.1.99/mywms.exe

ou 

Code:

http://192.168.1.99/mywms/cgi-bin/mywms

meme en rajoutant & ou ? à la fin...
Ca ne marche pas, il ne trouve pas la page.

ni dans dans arcview, avec le plugin wms, il ne trouve pas d'url valide...(sauf

Code:

http://192.168.1.99/cgi-bin/mapserv.exe?map=/test_wms.map&

)

comment faire??

Hors ligne

 

#2 Thu 12 April 2007 13:31

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: [Mapserver/Apache]

Bonjour,

Ce n'est pas forcément que l'url est batarde, c'est surtout qu'ainsi on a accès à votre mapfile et donc à vos données wink

Moi j'aurais fait comme cela :

Code:

MS_MAPFILE=c:/apache/www/test_wms.map 
export MS_MAPFILE
SetEnvIf Request_URI "c:/apache/cgi-bin/mapserv"

appeler ce fichier mywms et le placer dans /cgi-bin/

Sous linux, ceci fonctionne :

Code:

MS_MAPFILE=/var/local/blabla/project/vmap.map /var/www/cgi-bin/mapserv

Ou bien :

Code:

#! /bin/sh
MS_MAPFILE=/var/local/project/vmap.map
export MS_MAPFILE
/var/www/cgi-bin/mapserv

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

 

#3 Fri 13 April 2007 13:47

Mobilotek
Participant occasionnel
Lieu: Toulouse
Date d'inscription: 17 Oct 2006
Messages: 26

Re: [Mapserver/Apache]

re,


je sais pas si j'ai bien fait, mais j'ai placé

#! /bin/sh
MS_MAPFILE=c:/ms4w/Apache/htdocs/serveur_wms/test_wms.map&REQUEST=getmap&LAYERS=georoute4000&SERVICE=WMS&VERSiON=1.1
export MS_MAPFILE
SetEnvIf Request_URI "C:/ms4w/Apache/cgi-bin/mapserv.exe"

dans mywms qui est dans cgi-bin (d'ailleur, quelle extension il lui faut? .cgi?)

je suis sous windows...

en tout cas quand j'apelle http://192.168.1.99/wms, il m'affiche "No query information to decode. QUERY_STRING is set, but empty." , car dans httpd.conf j'y es mis:
ScriptAlias /wms "C:/ms4w/Apache/cgi-bin/mapserv.exe"

logiquement, il devrait lancer la requette associée au mapfile qui est declarée dans /cgi-bin/mywms ? n'est pas?

Hors ligne

 

#4 Fri 13 April 2007 14:08

Mobilotek
Participant occasionnel
Lieu: Toulouse
Date d'inscription: 17 Oct 2006
Messages: 26

Re: [Mapserver/Apache]

bon, il existe une autre solution, apparament,
et celle là est pour windows...

dans httpd.conf, placer :

SetEnvIf Request_URI "/cgi-bin/mswms.exe" MS_MAPFILE=c:/ms4w/Apache/htdocs/serveur_wms/test_wms.map&

(mswms.exe correspond à une copie du mapserv.exe)

donc, logiquement, a l'apel de http://192.168.1.99/cgi-bin/mswms.exe , il devrait lancer une url equivalante à:

http://192.168.1.99/cgi-bin/mswms.exe?m … s.map&
qui retourne comme message dans ie:
"mapserv(): Web application error. No template provided."

or, quand je lance http://192.168.1.99/cgi-bin/mswms.exe , il m'affiche "No query information to decode. QUERY_STRING is set, but empty. "

Hors ligne

 

#5 Fri 13 April 2007 14:13

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: [Mapserver/Apache]

Mobilotek a écrit:

or, quand je lance http://192.168.1.99/cgi-bin/mswms.exe , il m'affiche "No query information to decode. QUERY_STRING is set, but empty. "


Normal. Votre serveur WMS fonctionne mais il faut lui demander les couches que vous désirez. Voici une url correcte :
http://192.168.1.99/cgi-bin/mswms.exe?L … -90,180,90

Le dernier paramètre est optionnel, il me semble.

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

 

#6 Fri 13 April 2007 15:23

Mobilotek
Participant occasionnel
Lieu: Toulouse
Date d'inscription: 17 Oct 2006
Messages: 26

Re: [Mapserver/Apache]

je suis d'accord, pour avoir une image dans ie, on est obligé de spécifier un layer.
Mais je fait mes tests dans dans arcview avec l'outil wms, qui lui requiert une url du type

Code:

http://192.168.1.99/cgi-bin/mswms.exe?map=c:/ms4w/Apache/htdocs/serveur_wms/test_wms.map&

pour offir la liste de toutes les couches disponnibles dans le mapfile.

Mais, qu'importe, de toute façon, que je mette:
SetEnvIf Request_URI "/cgi-bin/mswms.exe" MS_MAPFILE=c:/ms4w/Apache/htdocs/serveur_wms/test_wms.map&

ou

SetEnvIf Request_URI "/cgi-bin/mswms.exe" MS_MAPFILE=c:/ms4w/Apache/htdocs/serveur_wms/test_wms.map&REQUEST=getmap&LAYERS=georoute4000&SERVICE=WMS&VERSiON=1.1

ça ne change rien lors de l'apel  http://192.168.1.99/cgi-bin/mswms.exe
par deduction setevenif est inactif. pourquoi? ya t-il un endroit particulier où le placer dans le httpd.conf?

------------------------

lors du test de cette requete dans ie(d'apres votre proposition):

Code:

http://192.168.1.99/cgi-bin/mswms.exe?LAYERS=srtm&VERSION=1.1.0&REQUEST=GetMap&SERVICE=WMS

l'erreur suivant apparait:
msEvalRegex(): Regular expression error. String (c:/ms4w/Apache/cgi-bin/mapserv.exe?map=c:/ms4w/Apache/htdocs/serveur_wms/test_wms.map/cgi-bin/mswms.exe) failed expression test.

1) pourquoi concatene t-il "/cgi-bin/mswms.exe" à la fin de la chaine?
2) pourquoi parle t'il de mapserv.exe?

Hors ligne

 

#7 Fri 13 April 2007 16:02

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: [Mapserver/Apache]

Mobilotek a écrit:

1) pourquoi concatene t-il "/cgi-bin/mswms.exe" à la fin de la chaine?
2) pourquoi parle t'il de mapserv.exe?


... Réfléchissez bien à ce que vous voulez faire et vous comprendrez que votre configuration est totalement illogique, en gros c'est le serpent qui se mange la queue.

Ce que vous voulez faire :
appellez un script qui va s'occuper de mettre en relation le mapfile avec mapserv.

Ici, mapserv est le véritable serveur WMS !

L'ordre du process est le suivant :
* appel de votre script
* votre script met en relation mapserv et le mapfile
* renvoit de l'image

Votre script doit contenir deux choses :
* l'adresse du mapfile
* la localisation de mapserv

Conclusion :

Code:

SetEnvIf Request_URI "/cgi-bin/mswms.exe" 
MS_MAPFILE=c:/ms4w/Apache/htdocs/serveur_wms/test_wms.map&

est incorrecte.

Code:

SetEnvIf Request_URI "/cgi-bin/mapserv.exe" 
MS_MAPFILE=c:/ms4w/Apache/htdocs/serveur_wms/test_wms.map&

Devrait mieux fonctionner.

Y.

PS : je tiens à préciser une chose, je n'ai pas l'habitude de windows, sous linux ceci fonctionne (à quelques adaptations près).


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

 

#8 Mon 16 April 2007 17:49

Mobilotek
Participant occasionnel
Lieu: Toulouse
Date d'inscription: 17 Oct 2006
Messages: 26

Re: [Mapserver/Apache]

Bon, ben pour ceux que ça interresse, j'ai trouvé une solution simple:

1)copier et renomer mapserv.exe en NomDeVotreChoix (sans extension ça marche aussi)
2)Dans httpd, à la section <IfModule alias_module> ajouter:

ScriptAlias /NomDeVotreChoix "C:/ms4w/Apache/cgi-bin/NomDeVotreChoix"
SetEnvIf Request_URI "/NomDeVotreChoix" MS_MAPFILE=chemin/vers/mapfile/test_wms.map

3)Et voilà, votre serveur est dispo à l'adresse:
http://VotreServeur/NomDeVotreChoix?

on peut mettre cette url dans le "wms_onlineresource" du mapfile pour plus de discretion, lors du getcapabilities


Merci Yves pour ton attention.

Dernière modification par Mobilotek (Mon 16 April 2007 17:51)

Hors ligne

 

#9 Mon 16 April 2007 18:24

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: [Mapserver/Apache]

Mobilotek a écrit:

Bon, ben pour ceux que ça interresse, j'ai trouvé une solution simple:

1)copier et renomer mapserv.exe en NomDeVotreChoix (sans extension ça marche aussi)
2)Dans httpd, à la section <IfModule alias_module> ajouter:

ScriptAlias /NomDeVotreChoix "C:/ms4w/Apache/cgi-bin/NomDeVotreChoix"
SetEnvIf Request_URI "/NomDeVotreChoix" MS_MAPFILE=chemin/vers/mapfile/test_wms.map

3)Et voilà, votre serveur est dispo à l'adresse:
http://VotreServeur/NomDeVotreChoix?

on peut mettre cette url dans le "wms_onlineresource" du mapfile pour plus de discretion, lors du getcapabilities


Merci Yves pour ton attention.


Bonjour,
Pourquoi vouloir à tout pris renommer mapserv !!!! Si NomDeVotreChoix=mapserv, l'étape 1 et une partie de l'étape 2 n'est plus nécessaire. Il suffit de placer mapser dans un endroit inaccessible (si vous voulez à tout pris empecher son utilisation de l'extérieur) et de l'appeler dans votre script qui, lui, est accessilbe dans /cgi-bin/.

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

 

#10 Fri 07 January 2011 15:06

Clicgauche
Participant occasionnel
Lieu: MOISSAC
Date d'inscription: 19 Mar 2008
Messages: 40
Site web

Re: [Mapserver/Apache]

Bonjour,

Je me gratte la tête pour changer l'URL "online resource" d'un serveur WMS que je suis en train de mettre en place :


Environnement Linux :

- emplacement de mapserv : /usr/lib/cgi-bin/mapserv

- emplacement de mon mapfile : /web/mapfile/wms_config.map

J'ai donc tenter de créer un fichier "wms" dans /usr/lib/cgi-bin/
contenant :

Code:

#! /bin/sh
MS_MAPFILE=/web/mapfile/wms_config.map
export MS_MAPFILE
/usr/lib/cgi-bin/mapserv

ensuite j'ai fais un chmod u+x wms (pour mettre les droits d'exécution)



finalement en me connectant avec http://sous.domaine.fr/cgi-bin/wms j'obtiens une page blanche


Merci de vos éclairages...

Hors ligne

 

#11 Fri 07 January 2011 20:20

tbonfort
Participant actif
Date d'inscription: 11 Oct 2007
Messages: 87

Re: [Mapserver/Apache]

Clicgauche a écrit:

Bonjour,

Je me gratte la tête pour changer l'URL "online resource" d'un serveur WMS que je suis en train de mettre en place :


Environnement Linux :

- emplacement de mapserv : /usr/lib/cgi-bin/mapserv

- emplacement de mon mapfile : /web/mapfile/wms_config.map

J'ai donc tenter de créer un fichier "wms" dans /usr/lib/cgi-bin/
contenant :

Code:

#! /bin/sh
MS_MAPFILE=/web/mapfile/wms_config.map
export MS_MAPFILE
/usr/lib/cgi-bin/mapserv

ensuite j'ai fais un chmod u+x wms (pour mettre les droits d'exécution)



finalement en me connectant avec http://sous.domaine.fr/cgi-bin/wms j'obtiens une page blanche


Merci de vos éclairages...


l'utilisation d'un script comme proposé est loin d'etre optimal, car cela oblige de lancer 2 processus cgi sur le serveur. il vaut mieux utiliser des rewriterules (penser a activer le module rewrite si ce n'est pas deja fait)

Code:

RewriteEngine On
<Location /wms>
  SetEnv MS_ERRORFILE "/chemin/vers/mapserver-error.log"
  SetEnv PROJ_LIB "chemin vers le repertoir contenant le fichier epsg"  #facultatif
</Location>

RewriteRule ^/wms/carto?(.*) /cgi-bin/mapserv?map=/chemin/vers/carto.map&$1 [PT,QSA]

a+,
thomas

Hors ligne

 

Pied de page des forums

Powered by FluxBB