Rechercher : dans
Par :
 Signaler ce message aux modérateurs

Salut,

j'essaie de lancer un script perl depuis un serveur IIS. Ca s'appelle du CGI normalement.

J'ai donc un répertoire "cgi-bin" dans lequel se trouve le script perl suivant:

-----------------------------------------------test.pl
#! c:/perl/bin/perl.exe

print "Content-type: text/html\n\n";

print <<EOF;
<HEAD><TITLE>test</TITLE></HEAD>
<BODY BGCOLOR=\"#FFFFFF\">
<BR><BR><BR><BR>
<CENTER>
<H1>super test de la mort</H1>
</CENTER>
</BODY>
</HTML>
EOF

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

Au début du script, je spécifie le chemin d'accès à l'exécutable PERL. OK

Quand je lance le script : http://mabécane/cgi-bin/test.pl, j'ai l'erreur suivante:

CGI Timeout
The specified CGI application exceeded the allowed time for processing. The server has deleted the process


Est-ce que j'ai oublié qqchose?

Version de perl : 5.005_03 build 522
Version de IIS : 5.0
Version Windows : 2000 advanced server

thanx pour les réponses

++

Meilleures réponses pour « cgi en perl » dans :
CGI - Les variables d'environnement Voir Notion de variable d'environnement Les variables d'environnement sont des données stockées dans des variables du système et permettent aux programmes d'avoir des informations sur son environnement. Dans le cas du programme CGI, l'environnement est...
Perl - Les fichiers VoirLa notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles...
Introduction à la programmation des CGI VoirPrésentation de l'interface CGI Un script CGI (Common Gateway Interface, traduisez interface de passerelle commune) est un programme exécuté par le serveur web (on dit généralement « côté serveur »), permettant d'envoyer au navigateur de...
Les variables avec Perl VoirConcept de variable avec Perl Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Perl peuvent être de trois...

1

sebsauvage, le 16 jui 2003 à 11:54:58

Essai de remplacer \n\n par \r\n\r\n

Explication: sous Windows, le retour à la ligne est 0D 0A (CRLF), alors que sous Unix c'est juste 0A (LF).

IIS, ne voyant pas arriver \r\n\r\n, pense que le script n'a pas encore terminé d'envoyer des entêtes HTTP, et il attend.
Au bout du timeout prévu, il tue le processus perl et renvoie une erreur.


Tu risque aussi d'avoir des problème quand ton CGI devra envoyer des fichiers binaires.
( voir http://www.commentcamarche.net/forum/affich.php3?cat=3&ID=335517&page=1 )

Répondre à sebsauvage

2

chipsocrevettes, le 16 jui 2003 à 12:08:29

Pas mal la vitesse de réaction ;))

J'ai fait ce que tu préconises, et maintenant qqchose s'affiche...

Le problème, c'est que le perl ne s'exécute pas : ce sont les sources du script qui s'affichent. Evidemment les balises HTML n'apparaissent pas quant à elle, car elles sont interprétées pas le navigateur.

Comment faire donc pour lancer l'exécutable perl lorsque je clique sur le script perl? Paramètres à fournir au serveur?

thanx.

++

Répondre à chipsocrevettes

3

sebsauvage, le 16 jui 2003 à 13:50:45

Je ne connais pas bien le paramétrage d'IIS, mais je te conseille d'aller faire un tour dans la doc.

Il est également possible que l'utilisation de la distribution perl d'ActiveState donne de meilleurs résultats (meilleure intégration Windows, et donc probablement IIS).
ça s'appelle ActivePerl.
http://activestate.com/Products/ActivePerl/

En Googlant un peu, j'ai trouvé ça sur la configuration d'IIS:
http://minilien.com/?FvoYwRCGxg
http://neural.cs.nthu.edu.tw/jang/sandbox/cgi/setupcgi.htm

Répondre à sebsauvage

4

chipsocrevettes, le 16 jui 2003 à 15:45:47

Magnifique, ça marche...presque bien!!

Merci seb pour le 2ème lien, c'est ce qu'il me fallait.
En résumé, voilà comment on configure IIS:

- on ouvre la MMC IIS
- on va dans les propriétés du site
- onglet "Home Directory"
- bouton "Configuration"
- onglet "App Mappings"
- bouton "Add"
- dans la case "Executable", on met le chemin d'accès vers l'exe Perl:

%fullpath/perl.exe %s %s

Le permier argument %s, c'est le script que je lance, évidemment!! C'est ça que j'avais oublié!! Quel c..!!
Le deuxième argument %s, c'est un paramètre qu'on donne au script (pas obligatoire)

- dans la case "Extension", on met .pl

Ca roule comme ça!!

thanx seb

++

Répondre à chipsocrevettes

5

chipsocrevettes, le 16 jui 2003 à 15:57:42

Seb,

print "Content-type: text/html\n\n";

fonctionne très bien sur mon windows....

Répondre à chipsocrevettes

6

 sebsauvage, le 17 jui 2003 à 09:25:45

Ah ? Tiens curieux.
Il doit peut-être effectuer une conversion implicite des retour-chariots.

Tant mieux.

Répondre à sebsauvage
Collection CommentÇaMarche.net