Problème CGI sur apache2/debian

Fermé
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 - 1 juil. 2008 à 10:38
 kiki - 1 juil. 2008 à 18:34
Bonjour,

je ne parviens pas trop à comprendre comment faire fonctionner le cgi (sur apache2/debian).

J'ai bien configuré le serveur apache2, pour qu'il attaque les scripts dans /usr/lib/cgi-bin/, et mis le scriptalias.

J'ai alors 2 problèmes :

1/ Sous firefox, la page affiche le code source de la page au lieu de traduire normalement les balises, ce qui n'est pas le cas sous Internet Explorer.
2/ J'ai fait un cgi en perl, qui renvoie des "die" en cas d'arguments incorrects. Ces "die" ne sont pas envoyés au navigateur.

#!/usr/bin/perl

use XML::Simple;
use Data::Dumper;
print "Content-type : text/html\n\n";
print "<HTML>\n<BODY BGCOLOR=\"#ff0000\">\n";
opendir R_DIR,$ARGV[0] or die "E/S : $!\n";

Le script s'arrête à print "<HTML>\n<BODY BGCOLOR=\"#ff0000\">\n";, et les logs d'erreur d'apache disent :
[Tue Jul 01 10:30:51 2008] [error] [client xxx.xxx.xxx.xxx] E/S : No such file or directory.
En fait, les erreurs produites par mon script sont envoyées comme messages d'erreurs dans les logs apache, et non affichées dans le navigateur !

:-((

1 réponse

Pour un cgi, il faut que le group soit www-data (groupe de l'utilisateur apache2 par défaut).
Il faut aussi que le fichier soit à 755 pour l'exécution par www-data.

Ensuite l'extension doit etre .cgi ou .pl (pour le perl).

Il faut que le fichier soit transféré par FTP en mode ASCII. Par défaut souvent les logiciels FTP transfèrent en mode BINARY. , perl n'aime pas du tout.

Cordialement,
0