IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

script cgi perl ne s execute pas


Sujet :

Web Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 8
    Par défaut script cgi perl ne s execute pas
    Bonjour à tous,

    Je souhaite avoir votre avis sur un comportement que je ne m'explique pas.
    J'ai installé, sur Ubuntu 10.4, un serveur apache avec une base mysql 5.1 ainsu que perl 5.10.1
    Je souhaite exécuter des scripts cgi en perl qui iront récupérer des données dans ma base mysql.

    Mon premier script cgi ne fait que s'afficher à l'appel depuis un navigateur au lieu de s'exécuter.
    Voici son contenu :

    root@papajm-desktop:/var/www# cat testperl.cgi

    #!/usr/bin/perl

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

    print "Hello, world!\n";
    Voici ce qui s'affiche dans le navigateur :
    #!/usr/bin/perl

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

    print "Hello, world!\n";

    Il est sous /var/www en droits 755

    Voici la partie cgi de mon apache2.conf :
    ScriptAlias /cgi-bin/ "/var/www/"
    <Directory "/var/www/">
    AllowOverride All
    Options ExecCGI
    Order allow,deny
    Allow from all
    </Directory>
    Dois-je ajouter une ligne dans le apache2.conf pour que l'extension cgi soit prise en compte ?

    Je voulais créer un fichier .htaccess sous /var/www mais j'ai lu que cela n'était pas conseillé et que le apache2.conf suffisait.

    Merci pour votre aide.

    Theophanie77460

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 8
    Par défaut ne marche toujours pas
    J'ai essayé ceci, mais cela ne marche toujours pas ...

    Dans mon apache2.conf, j'ai indiqué :

    soit

    ScriptAlias /cgi-bin/ "/var/www/"
    <Directory "/var/www/">
    AllowOverride All
    Options ExecCGI Order allow,deny
    Allow from all
    </Directory>
    soit

    ScriptAlias /cgi-bin/ "/var/www/"
    <Directory "/etc/apache2/cgi-bin/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>
    Cela donne la même chose : rien ne s'exécute mais le perl s'affiche tout simplement.

    Si j'ai bien compris, seule la ligne ScriptAlias est importante.
    Si je ne précise pas de pavé "Directory", apache prendra t-il des valeurs par défaut ?

    J'ai aussi essayé sans Directory, idem.

    Un complément :
    1)shebang de mon perl :
    #!/usr/bin/perl
    2)chemin du perl :

    root@papajm-desktop:/var/www# whereis perl
    perl: /usr/bin/perl /etc/perl /usr/lib/perl /usr/share/perl /usr/share/man/man1/perl.1.gz
    Il me manque quelque chose ...
    Au passage, je ne retrouve pas le chemin /var/www dans mon apache2.conf.
    S'agit-il d'un chemin par défaut d'apache ?

    Merci

    Theophanie77460

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Bon, où se trouvent tes programmes perl (.pl ou .cgi) ? Dans quel répertoire ?
    As tu un répertoire /usr/lib/cgi-bin ?
    Quel Linux utilises tu , Debian, Suse, Redhat ... ?
    As tu installé le module CGI sur ton serveur Linux ?

    Supposons que tu as un répertoire /usr/lib/cgi-bin
    Dans ton apache2.conf, met ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
    </Directory>
    A l'intérieur, voici un programme de test, test.pl.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/usr/bin/perl
    use warnings;
    use strict;
     
    use CGI;
     
    my $cgi = new CGI;
     
    print $cgi->header();
    print "CGI OK";
    print $cgi->end_html;
    Pour tester ce programme : http://IpDeTonServeur/cgi-bin/test.pl

    Voilà

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 8
    Par défaut Infos
    Djibril,

    J'ai une Ubuntu 10.4, j'ai installé perl et mysql via synaptic mais je vais vérifier comment exactement car mon serveur est à la maison ... et je suis au travail.
    Je souhaitais savoir pourquoi apache cherche mes cgi sous /var/www alors que je ne trouve pas cette arborescence dans le apache2.conf

    Quel est le package sous synaptic qui installe le module CGI ?

    Je vais contrôler le reste et répondre au plus tard demain soir.

    Merci

  5. #5
    Mr6
    Mr6 est déconnecté
    Membre émérite

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 608
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddHandler cgi-script .cgi .pl
    Eventuellement ca évitera de te poser la question du scriptalias. (Parce que normalement l'intérêt de ton alias c'est de pouvoir isoler tes cgi dans un dossier cgi-bin, ce que tu ne fais pas en pointant directement dans www)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    <Directory "/var/www/cgi-bin">
    AllowOverride None
    Options ExecCGI 
    Order allow,deny
    Allow from all
    </Directory>
    @+
    Mr6

    PS : tout ca c'est de la conf apache, on est toujours HS

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 8
    Par défaut résolu avec /usr/lib/cgi-bin
    MR6,

    Merci pour la réponse précédente qui a résolu mon problème :
    - le perl sous /usr/lib/cgi-bin ( après création du répertoire cgi-bin )
    - la config apache2.conf : J'y ai tout diésé : ScriptAlias, Directory

    Apache semble ainsi se suffire de sa config de base.
    Je vais tester avec le /var/www en tant que directory

Discussions similaires

  1. Réponses: 8
    Dernier message: 22/07/2010, 13h53
  2. Exécutions de scripts cgi / perl sous Apache 2
    Par gedeon555 dans le forum Apache
    Réponses: 1
    Dernier message: 31/01/2009, 20h23
  3. Réponses: 4
    Dernier message: 29/04/2007, 18h51
  4. Réponses: 2
    Dernier message: 17/04/2007, 10h56
  5. Réponses: 2
    Dernier message: 19/06/2003, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo