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

Apache Discussion :

Charger une librairie personnelles : est-ce possible ?


Sujet :

Apache

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 60
    Points
    60
    Par défaut Charger une librairie personnelles : est-ce possible ?
    Bonjour,

    J'utilise un script cgi pour lire des messages XML circulants sur Http (ce n'est pas du SOAP car la personne qui a fait les specs n'a pas tilté ce qu'elle faisait ). Dans le traitement de ce message, j'aurais besoin de logguer différentes informations dans un fichier de log. Dans mes précédents projets, j'ai utilisé log4cxx qui est bien pratique.

    J'aimerais donc faire ici la même chose. Pour cela, je veux charge une librairie fourni appelé liblog4cxx.so (qui n'a pas été compilé pour Apache) et l'utilisé dans mon cgi.

    Lorsque j'ai essayé j'ai eu l'erreur "undefined symbol".

    Pensez-vous que ce que j'essaye de faire est possible ? Ou alors les librairies doivent être compilées pour Apache ?

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Dans le cas d'un cgi, la bibliothèque est liée au programme et non à Apache. Cette erreur est simplement liée à la compilation de votre programme car les liens vers les fonctions de cette librairie ne sont pas trouvés (librairie manquante, emplacement non standard auquel cas on peut jouer par exemple sur LDFLAGS ou encore /etc/ld.so.conf - Linux, ...).


    Julp.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Salut,

    Merci pour cette réponse

    Ok, donc si c'est bien compris, la fonction LoadModule charge des librairies mais qui sont interne à Apache (par exemple la librairie php).

    J'ai donc essayé plusieurs manip pour que la librairie .so soit trouvée lors du lancement de mon cgi en le mettant dans :
    * Le répertoire du cgi
    * Le répertoire lib d'apache

    Mais rien à faire, le cgi ne trouve pas la librairies nécessaire à son fonctionnement et sort en erreur.

    Voici la trace que j'obtiens dans le fichier error.log :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Wed Mar 14 14:38:57 2007] [error] [client 10.149.234.145] /users/u1xyt/italtel/test_apache/apache/cgi-bin/testcgi/proto/proto/proto: error while loading shared libraries: liblog4cxx.so.9: cannot open shared object file: No such file or directory
    [Wed Mar 14 14:38:57 2007] [error] [client 10.149.234.145] Premature end of script headers: proto
    Je continue de chercher... et me penche sur le LDFLAGS et le /etc/ld.so.conf

    Pour info je bosse sous RedHat AS 3.0

    Merci d'avance

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par cheprod
    Ok, donc si c'est bien compris, la fonction LoadModule charge des librairies mais qui sont interne à Apache (par exemple la librairie php).
    On parle ici de module bien que ce soit des librairies dynamiques car l'interface est particulière (prévue pour être chargé par Apache via dlopen sous Linux ou similaire en fonction de l'OS).

    La variable LDFLAGS, est à utiliser lors de la compilation. En revanche, après vous pourriez la déplacer vers un répertoire standard /lib ou /usr/lib (personnellement je ne le recommande pas car c'est que ceci n'a pas été prévu lors de la compilation/installation), rajouter le chemin de cette librairie à /etc/ld.so.conf (requiert les droits administrateurs et à faire suivre de l'exécution de ldconfig) ou jouer sur la variable d'environnement LD_LIBRARY_PATH.


    Julp.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Edit : Merci pour ta réponse . Je suis passé par LD_LIBRARY_PATH puis par le mod_env d'apache pour transmettre la variable à mon CGI.

    Je pense avoir trouver une solution

    J'ai regardé du coté de mod_env d'apache. J'ai donc vérifier que le module était bien chargés puis j'ai ajouter dans le fichier httpd.conf la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetEnv LD_LIBRARY_PATH $LD_LIBRARY_PATH:/users/u1xyt/italtel/test_apache/apache/cgi-bin/testcgi/proto/proto
    Je vais faire quelques tests pour m'assurer que tout est bien OK !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA]Création d'une table VBA est-ce possible?
    Par bacchus30 dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/03/2007, 14h44
  2. Réponses: 8
    Dernier message: 30/01/2007, 23h20
  3. Réponses: 6
    Dernier message: 18/10/2006, 10h33
  4. [VB6] charger une librairie
    Par R@IZER dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 31/03/2006, 15h03
  5. [HTML] Charger une page dans un tableau? Possible?
    Par mec.nimois dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/10/2005, 11h32

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