Symbole non défini lors du chargement de Apache2 mod_xml2enc

Je suis tellement frustré d’installer des modules liés au proxy inverse sur le serveur HTTP Apache2 sur une boîte CentOS 5. Comme il s’agit d’une ancienne version du serveur Apache2, j’ai dû comstackr les modules à partir des sources en utilisant l’outil Apache ‘apxs’. Je n’ai reçu aucun avertissement ou erreur lors de l’installation du module par ‘apxs’, mais j’ai rencontré une erreur d’exécution lors du redémarrage du serveur Apache.

Starting httpd: httpd: Syntax error on line 206 of /etc/httpd/conf/httpd.conf: Cannot load /usr/lib64/httpd/modules/mod_xml2enc.so into server: /usr/lib64/httpd/modules/mod_xml2enc.so: undefined symbol: xmlDetectCharEncoding [FAILED] 

Voici plus de détails.

 OS: CentOS 5.11; Linux 2.6.18-400.1.1.el5 #1 SMP Thu Dec 18 00:59:53 EST 2014 x86_64 x86_64 x86_64 GNU/Linux Apache: version 2.2.3 

Pour des raisons historiques, je ne peux pas les mettre à niveau vers une version plus récente pour résoudre le problème.

A l’origine, le système d’exploitation manquait de libxml2, que j’ai installé avec succès sans problème. J’ai téléchargé les fichiers sources de mod_proxy_html dont 1) mod_xml2enc.c, 2) mod_proxy_html.h et 3) mod_proxy_html.c

J’ai utilisé les commandes suivantes pour d’abord installer mod_xml2enc, puis mod_proxy_html.

 apxs -i -a -c -I /usr/include/libxml2/ mod_xml2enc.c apxs -i -a -c -I /usr/include/libxml2/ -I ./ mod_proxy_html.c 

Les deux semblaient correctes et montraient une sortie comme celle-ci:

 /usr/lib64/apr-1/build/libtool --silent --mode=comstack gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fno-ssortingct-aliasing -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd -I/usr/include/apr-1 -I/usr/include/apr-1 -I/usr/include/libxml2/ -c -o mod_xml2enc.lo mod_xml2enc.c && touch mod_xml2enc.slo /usr/lib64/apr-1/build/libtool --silent --mode=link gcc -o mod_xml2enc.la -rpath /usr/lib64/httpd/modules -module -avoid-version mod_xml2enc.lo /usr/lib64/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib64/apr-1/build/libtool' mod_xml2enc.la /usr/lib64/httpd/modules /usr/lib64/apr-1/build/libtool --mode=install cp mod_xml2enc.la /usr/lib64/httpd/modules/ cp .libs/mod_xml2enc.so /usr/lib64/httpd/modules/mod_xml2enc.so cp .libs/mod_xml2enc.lai /usr/lib64/httpd/modules/mod_xml2enc.la cp .libs/mod_xml2enc.a /usr/lib64/httpd/modules/mod_xml2enc.a chmod 644 /usr/lib64/httpd/modules/mod_xml2enc.a ranlib /usr/lib64/httpd/modules/mod_xml2enc.a PATH="$PATH:/sbin" ldconfig -n /usr/lib64/httpd/modules ---------------------------------------------------------------------- Libraries have been installed in: /usr/lib64/httpd/modules If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,--rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- chmod 755 /usr/lib64/httpd/modules/mod_xml2enc.so [activating module `xml2enc' in /etc/httpd/conf/httpd.conf] 

Cependant, lorsque j’ai essayé de redémarrer le serveur, le message d’erreur que j’ai placé en haut a été affiché.

J’ai essayé de nombreuses façons de résoudre ce problème, mais rien n’a fonctionné. Cela vaut peut-être la peine de noter que j’ai pris les mesures exactes en installant les mêmes modules sur une machine CentOS 5.11 32 bits et que cela ne posait aucun problème. La seule différence entre ces deux machines est qu’une seule est 32 bits et l’autre 64 bits.

J’espère que quelqu’un saura comment résoudre ce problème.

Merci beaucoup d’avance.

J’ai trouvé la solution à ce problème par moi-même. C’est stupide. J’ai oublié de charger le libxml2 sur le serveur Apache. Après avoir ajouté LoadFile /usr/lib64/libxml2.so , l’erreur était partie.