2 votes

Pas de mod_jk.so généré lors de la compilation du connecteur tomcat

Lorsque j'essaie de compiler le connecteur tomcat à partir des sources, tout semble correct sauf qu'aucun fichier mod_jk.so n'est créé.

Versions du logiciel : RHEL6 x86_64
httpd-2.4.3
tomcat-connector 1.2.37

Commandes : cd native ./configure --with-apxs=/usr/local/apache2/bin/apxs make cd apache-2.0 ls Le seul message d'avertissement pendant la fabrication est :
Warning ! dlname not found in /usr/local/tomcat-connectors-1.2.37-src/native/apache-2.0/mod_jk.la.

Quelqu'un a-t-il des suggestions sur la manière de générer le fichier mod_jk.so ?

0voto

bamccaig Points 420

J'ai fini par le faire fonctionner. Il s'avère que j'avais des problèmes plus importants que le simple connecteur de tomcat.

Tout d'abord, il y a plusieurs choses que je devais faire pour compiler apache avec Linux 64 bits. J'obtenais des erreurs de compilation telles que :

relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC 

Pour résoudre ce problème, OpenSSL devait avoir une option de configuration spéciale :

./configure -fPIC

J'ai donc recompilé OpenSSL, ce qui a permis à Apache de compiler le module ssl correctement. Ensuite, j'ai eu une autre erreur pendant l'exécution d'apache make install :

libtool: install: error: relink `libaprutil-1.la' with the above command before installing it

Pour résoudre ce problème, les classes APR avaient besoin d'une option de configuration spéciale lors de leur compilation :

CC="gcc -m64" ./configure --prefix=/usr/local/apr
CC="gcc -m64" ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

En les compilant séparément, j'ai dû utiliser l'option --with-apr au lieu de --with-included-apr dans la compilation d'Apache :

./configure ... --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

J'avais également utilisé une option de configuration étrange lors de la configuration d'Apache :

--with-apxs2=...

qui aurait dû être :

--with-apxs=...

Après avoir résolu tous ces problèmes et recompilé apache, j'ai réessayé avec la construction du connecteur tomcat. Le fichier mod_jk.so a été généré correctement.

0voto

ALex_hha Points 6885

Les informations sur le système

# uname -r
2.6.32-358.14.1.el6.x86_64

# cat /etc/redhat-release
CentOS release 6.4 (Final)

# rpm -qa | grep httpd
httpd-devel-2.2.15-28.el6.centos.x86_64
httpd-2.2.15-28.el6.centos.x86_64
httpd-tools-2.2.15-28.el6.centos.x86_64

Je vais suggérer de construire à partir des sources uniquement le module lui-même.

# cd /root/
# wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.37-src.tar.gz

# tar -xzf tomcat-connectors-1.2.37-src.tar.gz
# cd tomcat-connectors-1.2.37-src/native/
# ./configure --prefix=/opt/ --with-apxs=/usr/sbin/apxs
# make
# file apache-2.0/mod_jk.so
apache-2.0/mod_jk.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

# cp apache-2.0/mod_jk.so /usr/lib64/httpd/modules/
# echo "LoadModule jk_module modules/mod_jk.so" > /etc/httpd/conf.d/mod_jk.conf

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

# apachectl -t -D DUMP_MODULES | grep jk
Syntax OK
 jk_module (shared)

Il n'est donc pas nécessaire d'installer apache/openssl/apr/apr-util depuis les sources. Si vous voulez mettre à jour les paquets, ce sera l'enfer.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X