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 :

CGI R et Perl


Sujet :

Web Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Par défaut CGI R et Perl
    Bonjour à tous,

    J'ai un CGI sur mon serveur Linux (Ubuntu server) qui devrait se charger de sortir un graphique généré par R avec des données récupérées dans MySQL en fonction de paramètres saisis dans une interface web. Or le graphique n'est pas créé.

    Il n'y a pas de message d'erreur de le log d'erreur d'Apache.
    Lorsque je lance les lignes de commandes relatives à R en console sur le serveur, il n'y a pas de message d'erreur et le graphique est créé (aussi bien en root qu'en simple utilisateur).

    Voici les lignes de mon script Perl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    use Statistics::R;
    my $R = Statistics::R->new();
    $R->startR;	
     
    my $i = 0;
    my @pourcentage;
    foreach (@data) {
    	push @pourcentage, $data[$i][0];
    	$i++;
    }
     
    $R->send('pc<- c ('. join(",", @pourcentage). ')');
    $R->send('png("/home/www-data/test/essai.png")');
    $R->send('plot(pc)');
    $R->send('dev.off()');
    Quelqu'un a une idée du problème ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Par défaut
    En tapant la commande suivante en console on peut remarquer que les droits de R sont les suivants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -rwxr-xr-x 1 root root 7979 2010-01-18 16:31 R
    Est-ce que mon problème ne serait pas lié aux droits des fichiers exécutables ? Je vais regarder la doc de Hugo ETIEVANT sur les droits étendus...

  3. #3
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Par défaut
    Est-ce que mon problème ne serait pas lié aux droits des fichiers exécutables ?
    La première des choses est de vérifier que Perl et R ont les droits d'écriture et de lecture dans le répertoire qui est utilisé pour faire le pont entre les deux langages.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Par défaut
    Citation Envoyé par stoyak Voir le message
    le répertoire qui est utilisé pour faire le pont entre les deux langages.
    Stoyak, est-ce que tu veux parler de l'option log_dir qu'il est possible de paramétrer lors de la création de l'objet bridge entre Perl et R ?

    Dans mon cas, je n'ai pas modifié l'option par défaut. Je suppose donc que le répertoire où le pont est créé est celui qui est mentionné dans la doc du module Statistics::R :

    log_dir
    The directory where the bridge between R and Perl will be created.
    R and Perl need to have read and write access to the directory!
    By dafault it will be created at %TMP_DIR%/Statistics-R.
    Sur mon serveur, j'ai bien un dosssier /tmp/Statistics-R/, si je fais un ls -l sur ce dossier, j'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    admin@serveur:~$ ls -l /tmp/Statistics-R/
    drwxrwxrwx 2 www-data www-data 4096 2011-08-02 13:37 output
    adminoca@gxsimaoca:~$
    Comment vérifier que Perl et R ont les droits en écriture sur ce dossier (ça devient plus une question d'ordre Linux... peut-être dois-je poster ailleurs) ?

  5. #5
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    admin@serveur:~$ ls -l /tmp/Statistics-R/
    drwxrwxrwx 2 www-data www-data 4096 2011-08-02 13:37 output
    adminoca@gxsimaoca:~$
    Le répertoire est en 777 donc tout le monde a les droits dessus. Par contre, tu crées l'image dans /home/www-data/test/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $R->send('png("/home/www-data/test/essai.png")');
    et je ne sais pas si l'utilisateur apache a les droits d'écriture dans ce répertoire.

  6. #6
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Par défaut
    Je me suis fait doubler par djibril !
    En effet, ton répertoire temp est accessible à tous en lecture et écriture. Je préfère utiliser l'option log_dir pour paramétrer le répertoire du pont.

    Je suivrai le conseil de djibril et vérifierai si ton utilisateur a les droits sur l'ensemble des répertoires que tu spécifies dans ton script.

Discussions similaires

  1. cgi et bio perl
    Par chong dans le forum Web
    Réponses: 5
    Dernier message: 05/08/2008, 20h32
  2. Perl CGI et VI perl toolkit
    Par Pierrot2612 dans le forum Langage
    Réponses: 0
    Dernier message: 16/11/2007, 16h00
  3. Réponses: 4
    Dernier message: 16/07/2004, 09h16
  4. [web] afficher le résultat d'un script cgi en perl
    Par Leishmaniose dans le forum Web
    Réponses: 8
    Dernier message: 10/06/2004, 18h36
  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