Posez votre question Signaler

Cgi en perl

chipsocrevettes 73Messages postés 16 juin 2003Date d'inscription - Dernière réponse le 17 juil. 2003 à 09:25
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

++
Lire la suite 

Cgi en perl »

6 réponses
Réponse
+0
moins plus
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 )
Ajouter un commentaire
Réponse
+0
moins plus
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.

++
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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

++
Ajouter un commentaire
Réponse
+0
moins plus
seb,

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

fonctionne très bien sur mon windows....
sebsauvage - 17 juil. 2003 à 09:25
Ah ? Tiens curieux.
Il doit peut-être effectuer une conversion implicite des retour-chariots.

Tant mieux.
Ajouter un commentaire
Ce document intitulé « cgi en perl » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook