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 :

module GeoIP sous apache 2


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Par défaut module GeoIP sous apache 2
    Bonjour à tous,

    En lisant hier le dernier PHP solution, j'ai découvert le module GeoIP qui permets de savoir d'ou viennent mes visiteurs.

    Je suis donc aller télécharger ce programme libre sur : http://www.maxmind.com/download/geoip/api/mod_geoip2/

    D'après le tuto et la notice original dans le fichier tar.gz j'ai essayé de faire un module .so avec l'outil apache "APXS".

    Après des dizaines d'essai, cette commande à fonctionné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /mod_geoip2_1.2.0$ apxs -i -a  -c mod_geoip.c
    résultat:
    ...
    Libraries have been installed in: /usr/lib/httpd/modules
    ...
    activating module `geoip' in /etc/httpd/conf/httpd.conf
    ...
    Alors j'étais tout content hier soir après une journée de test, alors j'ai fait mon "apachectl restart" et malheuresement :

    apachectl: Configuration syntax error, will not run "restart":
    Syntax error on line 192 of /etc/httpd/conf/httpd.conf:
    Cannot load /etc/httpd/modules/mod_geoip.so into server: /etc/httpd/modules/mod_geoip.so: undefined symbol: GeoIP_country_name
    le mod_geoip.so est bien présent dans le répertoire spécifié à l'installation, soit : /usr/lib/httpd/modules/mod_geoip.so, mais l'erreur dit Cannot load /etc/httpd/modules/mod_geoip.so ? Et le chemin dans le httpd.conf est bon ?

    Quelqun a t'il une solution ?


    Je précise "SERVEUR sous FEDORA core 4, avec PLESK 8, APACHE 2"

    Merci d'avance

  2. #2
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 27
    Par défaut
    Lors du redémarrage, Apache lis son fichier de configuration (httpd.conf) et ne retrouve pas les librairies que tu as utilisé lors de la compilation . essaies de rajouter à ton fichier de configuration la commande LoadFile (LoadFile /.../lib/librairies_de_ton_module.so)

  3. #3
    Membre éclairé

    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Par défaut
    Merci pour cette réponse rapide

    J'ai essayé de modifier mon fichier httpd.conf

    en ajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LoadFile /mod_geoip2_1.2.0/.libs/mod_geoip.so
    LoadModule geoip_module modules/mod_geoip.so
    Dans le dossier caché .libs dans mon repertoire de compilation "mod_geoip2_1.2.0" j'ai des fichiers "mod_geoip.so, .lai, .la, .a, .o" Je ne sais même pas si ils sont importants ?

    Et en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /mod_geoip2_1.2.0/.libs$ apachectl graceful
    apachectl: Configuration syntax error, will not run "graceful":
    Syntax error on line 192 of /etc/httpd/conf/httpd.conf:
    Cannot load /mod_geoip2_1.2.0/.libs/mod_geoip.so into server: /mod_geoip2_1.2.0/.libs/mod_geoip.so: undefined symbol: GeoIP_country_name
    Et toujours même erreur à la ligne 192 qui correspond à "LoadFile"

  4. #4
    Membre éclairé

    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Par défaut
    Après des tests toute l'après midi, toujours rien

    J'ai essayé de dupliquer mon fichier "mod_geoip.so" dans mon repertoire de base ou j'ai lancer la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /mod_geoip2_1.2.0$ apxs -i -a  -c mod_geoip.c
    et de mettre les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LoadFile /mod_geoip2_1.2.0/mod_geoip.so
    LoadModule geoip_module /mod_geoip2_1.2.0/mod_geoip.so
    et toujours

    Cannot load .... undefined symbol: GeoIP_country_name

    J'ai cherché sur le forum officiel et la même question que moi sans réponse !

    Alors merci d'avance à celui qui trouvera la solution !

  5. #5
    Membre expérimenté

    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
    Par défaut
    Vous n'en auriez pas oublié moitié : il faut également la librairie C (et que cette dernière soit chargeable si le module est compilée dynamiquement vis à vis de cette librairie donc jouer sur la variable d'environnement LD_LIBRARY_PATH ou la configuration de ld(config) si elle n'est pas située dans un répertoire standard) ?

  6. #6
    Membre éclairé

    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Par défaut
    Merci pour ces réponses,

    Je précise je suis newbies en linux comme sous apache

    Mais j'ai fait pleins de test et j'ai même redécider de repartir depuis le début avec la commande "APXS", car je me suis dit que si après le module.so crée, il fallait toujours des chemins vers les librairies d'origine, c'était peut être très mal compilé de ma part ?!

    Comme dans la notice:

    To build mod_geoip as a dynamically loadable module:

    apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c

    -I/usr/local/include is where the GeoIP.h header file is installed
    -L/usr/local/lib is where the libGeoIP library is located

    This will put the correct LoadModule statement.
    J'ai placé mes fichiers ".h" à la racine de /usr/local/include/" car sinon j'ai un message dans ma console qui me dit qu'il trouve pas le fichier "GeoIP.h"

    J'avais essayé "/usr/local/include/GeoIP" pour tous les autres fichiers en .h, mais cela n'a pas marché !

    Alors en essayant de comprendre mes erreurs et la notice (ainsi que le forum publique de maxmind ou les questions identiques à la mienne sont sans réponses), j'ai fais cette commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c
    et voici le résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /usr/local/lib/GeoIP$ apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c
    /usr/lib/apr/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables -DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/apr-0 -I/usr/include/httpd -I/usr/local/include  -c -o mod_geoip.lo mod_geoip.c && touch mod_geoip.slo
    /usr/lib/apr/build/libtool --silent --mode=link gcc -o mod_geoip.la  -L/usr/local/lib -lGeoIP -rpath /usr/lib/httpd/modules -module -avoid-version    mod_geoip.lo
    /usr/bin/ld: cannot find -lGeoIP
    collect2: ld returned 1 exit status
    apxs:Error: Command failed with rc=65536
    Alors je sais vraiment plus, tellement j'ai fais des essais et j'ai pris des notes de toutes les erreurs et des instalations possibles.


    Pour répondre à julp et ce qui concerne le
    LD_LIBRARY_PATH ou la configuration de ld
    , j'ai commencé par cela aujourd'hui:

    et j'ai lu dans la première instal. dont je parlais au début que :
    "have your system administrator add LIBDIR to `/etc/ld.so.conf'"
    dans ce fichier c'est marqué :
    "include ld.so.conf.d/*.conf" et dans ce dossier en regardant les 3 autres fichiers qui sont présents je me pose la question quoi écrire dedans et comment appeler ce fichier ?

    Merci d'avance
    JY

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

Discussions similaires

  1. integrer un module sous apache tomcat
    Par ensi08 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 18/06/2008, 08h32
  2. Comment compiler/ajouter un module sous Apache 2 ?
    Par j0shua dans le forum Apache
    Réponses: 1
    Dernier message: 13/12/2007, 11h51
  3. probleme apache+module python sous windows
    Par gaussprodada dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 02/11/2004, 21h09
  4. Réponses: 2
    Dernier message: 23/06/2004, 16h35
  5. Réponses: 3
    Dernier message: 01/06/2004, 09h44

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