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

Modules Perl Discussion :

modules sur serveur ?


Sujet :

Modules Perl

  1. #1
    Membre du Club Avatar de Batou
    Inscrit en
    Mars 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 71
    Points : 62
    Points
    62
    Par défaut modules sur serveur ?
    bonjour,

    je developpe un programme qui servira a plusieurs personnes en meme temps donc je vais le mettre sur un serveur.
    Pour faire les tests, j'ai travaille jusqu'a present sur un serveur local et mon fichier CGI a un chemin en dur pour prendre appui sur les modules perl que j'ai codes.
    (genre : C:\Perl\lib\module.pm)

    Ma question est que une fois ce script CGI mis sur le serveur, les modules aussi doivent etre sur le serveur ?
    Si oui, il faut mettre quoi comme adresse pour que le CGI les trouve ?
    Si non, ca veut dire qu'il faut que j'installe ActivePerl (tous mes utilisateurs ont M$ Windows) sur tous les postes ?

    Voila, a plus !
    Merci d'avance

  2. #2
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    C'est pas trop clair ce que tu demandes...
    Comment fais-tu pour utiliser ta bibliothèque jusqu'à présent ??
    Tu fonctionnes en mode web ou pas ?
    Les utilisateurs dont tu parles sont des développeurs ou seulement des personnes qui ont besoin d'éxecuter ton script ?
    Ton architecture cible, c'est bien un serveur + des postes utilisateurs sur le même LAN ?
    Pour appeler ton script depuis les postes de tes utilisateurs (je suppose alors qu'il ne vont qu'éxecuter ton script) tu tapes dans la barre d'adresse de ton navigateur une URL du genre (suivante la conf de ton serveur web):
    http://@IP_serveur/mon_script.pl

  3. #3
    Membre du Club Avatar de Batou
    Inscrit en
    Mars 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 71
    Points : 62
    Points
    62
    Par défaut
    salut Jeh/Bender,

    merci pour la reponse, dsl de n'avoir pas ete clair.

    Pour l'instant, tout est sur mon PC. J'ai un server apache dessus, et une base MySQL dans laquelle je stocke des donnees.
    J'ai programme une interface utilisateur de cette base de donnees avec un script CGI.
    Pour l'instant, on accede donc a la base de donnees sur mon PC, a partir des autres PC du LAN, en tapant mon adresse ip et puis le nom du script dans le navigateur web.
    http://000.000.000.007/monscript.cgi
    Dans mon script CGI, je reference mes modules en mettant en debut de script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!C:\Perl\bin\perl.exe -w
    use lib "c:/Perl/lib/ANC";
    Ma question est pour savoir si ces chemins en dur doivent changer qd je migrerai mon script et ma base de donnees sur un serveur. (autre que localhost, sur un equipement a part)

    Voila, j'espere etre clair cette fois...

  4. #4
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    Il faudra bien sur modifier le chemin d'accès à tes librairies. Eventuellement aussi le shebang.
    Si tu as des paramètres à coder en dur (@IP, etc), je peux te conseiller de faire un .pl avec toutes ces infos dedans. Ajoutes également une entrée à la variable @INC qui correspond à ton chemin vers tes librairies. Ainsi, dans tes scripts, tu n'auras qu' à faire un require de ton pl de "configuration" et faire un use de tes librairies. Et lorsque que tu migres ton scripts et tes librairies, tu n'as que le .pl de "configuration" à modifier ! Si tu as plusieurs dizaines de scripts, c'est un gain de temps non négligeable.
    Pour synthétiser tout ça, tu devras avoir dans le fichier .pl de "configuration" (nommé par exemple env_scripts.pl):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #! c:/Perl/perl
     
    push @INC "mon_chemin_vers_mes_librairies";
     
    my $IP_host_a_contecter  = "10.10.10.10";
    Et dans ton/tes scripts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #! c:/Perl/perl
     
    require "env_scripts.pl";
     
    use ta_librairie;
     
    ...
    NOTE: @INC est le tableau dans lequel Perl stocke tous les chemin des librairies qu'il connait. Pourquoi donc ne pas ajouter les tients de chemins puisque c'est un coportement par défaut ?

  5. #5
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Parce que "use lib" est l'interface normalisé pour ajouter un chemin à @INC, et que donc il vaut mieux l'utiliser qu'un push sur @INC.
    Et s'il veut pouvoir utiliser son $IP dans ses scripts, il faut la déclarer avec un "our" pas un "my", de plus avec ta méthode, il sera obligé de qualifier complètement $env_perl::IP, alors qu'il pourrait employer un "use" et profiter du système d'export de variable de Perl pour s'éviter ces efforts.
    Enfin peut-être qu'un vrai fichier de configuration serait plus adapté, non ? C'est très facile à faire avec par exemple App::Config.

    --
    Jedaï

  6. #6
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    Citation Envoyé par Jedai
    Parce que "use lib" est l'interface normalisé pour ajouter un chemin à @INC, et que donc il vaut mieux l'utiliser qu'un push sur @INC.
    Et s'il veut pouvoir utiliser son $IP dans ses scripts, il faut la déclarer avec un "our" pas un "my", de plus avec ta méthode, il sera obligé de qualifier complètement $env_perl::IP, alors qu'il pourrait employer un "use" et profiter du système d'export de variable de Perl pour s'éviter ces efforts.
    Enfin peut-être qu'un vrai fichier de configuration serait plus adapté, non ? C'est très facile à faire avec par exemple App::Config.

    --
    Jedaï
    Avec ma méthode, tu n'es pas obligé de qualifier complètement $env_perl::IP, il suffit de la déclarer comme ceci dans le script après le require :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    use vars qw ($IP);
    Pour la suite, je ne suis plus...Suis pas encore un crack de Perl...
    Je ne connaissais pas App::Config, ça a l'air pas mal du tout !
    Bref encore un preuve que chacun peut faire comme il l'entend avec Perl.

  7. #7
    Membre du Club Avatar de Batou
    Inscrit en
    Mars 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 71
    Points : 62
    Points
    62
    Par défaut
    salut jeh, salut jedai,

    merci pour vos reponses !

    Je regarde de plus pres ce qu'est App::Config et je reviens apres ceci. Je vais chercher sur ASPN/Activeperl, vu que mon environnement est windows.

    merci encore et a plus
    batou

Discussions similaires

  1. [CR XI] Faire un report modulable sur plusieurs Serveur et/ou BDD
    Par wallior dans le forum Connectivité
    Réponses: 0
    Dernier message: 22/12/2009, 14h32
  2. Ajout d'un module sur serveur mutualisé
    Par polo42 dans le forum Déploiement/Installation
    Réponses: 4
    Dernier message: 05/05/2008, 15h41
  3. [Sybase] Accès Table sur serveur distant
    Par MashiMaro dans le forum Sybase
    Réponses: 5
    Dernier message: 11/02/2004, 14h09
  4. Erreur de connexion à ma base sur serveur Debian - Apache
    Par GLDavid dans le forum Installation
    Réponses: 4
    Dernier message: 24/09/2003, 10h29
  5. jsp sur serveur distant
    Par petitelulu dans le forum JBuilder
    Réponses: 5
    Dernier message: 11/09/2003, 11h50

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