1 votes

Comment ajouter un nouveau module à apache2 Centos6

Quand j'ai compilé apache, j'ai oublié d'ajouter proxy_http_module, comment puis-je l'ajouter maintenant?

Mon apache est installé ici: /usr/local/apache2

J'ai essayé de compiler à nouveau et j'obtiens cette erreur:

make[1]: Leaving directory `/root/httpd-2.2.31/support'
make[1]: Entering directory `/root/httpd-2.2.31'
/root/httpd-2.2.31/srclib/apr/libtool --silent --mode=compile gcc -g -O2 -pthread        -I. -I/root/httpd-2.2.31/os/unix -I/root/httpd-2.2.31/server/mpm/prefork -I/root/httpd-2.2.31/modules/http -I/root/httpd-2.2.31/modules/filters -I/root/httpd-2.2.31/modules/proxy -I/root/httpd-2.2.31/include -I/root/httpd-2.2.31/modules/generators -I/root/httpd-2.2.31/modules/mappers -I/root/httpd-2.2.31/modules/database -I/root/httpd-2.2.31/srclib/apr/include -I/root/httpd-2.2.31/srclib/apr-util/include -I/root/httpd-2.2.31/server -I/root/httpd-2.2.31/modules/proxy/../generators -I/root/httpd-2.2.31/modules/ssl -I/root/httpd-2.2.31/modules/dav/main -fPIE -prefer-non-pic -static -c modules.c && touch modules.lo
gcc -g -O2 -pthread        -I. -I/root/httpd-2.2.31/os/unix -I/root/httpd-2.2.31/server/mpm/prefork -I/root/httpd-2.2.31/modules/http -I/root/httpd-2.2.31/modules/filters -I/root/httpd-2.2.31/modules/proxy -I/root/httpd-2.2.31/include -I/root/httpd-2.2.31/modules/generators -I/root/httpd-2.2.31/modules/mappers -I/root/httpd-2.2.31/modules/database -I/root/httpd-2.2.31/srclib/apr/include -I/root/httpd-2.2.31/srclib/apr-util/include -I/root/httpd-2.2.31/server -I/root/httpd-2.2.31/modules/proxy/../generators -I/root/httpd-2.2.31/modules/ssl -I/root/httpd-2.2.31/modules/dav/main -fPIE -c /root/httpd-2.2.31/server/buildmark.c
/root/httpd-2.2.31/srclib/apr/libtool --silent --mode=link gcc -g -O2 -pthread   -pie     -o httpd  modules.lo buildmark.o -export-dynamic server/libmain.la modules/http/libmod_http.la modules/mappers/libmod_so.la server/mpm/prefork/libprefork.la os/unix/libos.la -lm -lpcre /root/httpd-2.2.31/srclib/apr-util/libaprutil-1.la -lexpat /root/httpd-2.2.31/srclib/apr/libapr-1.la -lrt -lcrypt -lpthread 
/usr/bin/ld: server/.libs/libmain.a(main.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
server/.libs/libmain.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [httpd] Erreur 1
make[1]: Leaving directory `/root/httpd-2.2.31'
make: *** [all-recursive] Erreur 1

voici ma configuration:

./configure --with-mpm=prefork --with-included-apr --enable-mods-shared=all --enable-so --enable-pie --enable-cgi --with-pcre --enable-ssl --enable-rewrite --enable-vhost-alias --enable-proxy --enable-proxy-http --enable-proxy-ftp --enable-proxy-balancer --enable-cache --enable-mem-cache --enable-file-cache --enable-disk-cache --disable-spelling --enable-dav --enable-ldap --enable-authnz-ldap --enable-authnz-ldap --enable-authn-anon --enable-authn-alias --build=i686

1 votes

Recompilez-le à nouveau?

0 votes

J'ai mis à jour le message principal, merci de vérifier...

2voto

nico_ekito Points 13977

Comme il est inclus dans les sources apache, IMO la façon la plus simple est d'aller dans le répertoire des sources que vous avez utilisé, de le reconfigurer en ajoutant mod_proxy, puis de le compiler. Cela ne va pas écraser vos fichiers de configuration.

Assurez-vous de faire un make clean avant de recompiler.

En passant, je vous suggère d'activer tous les modules comme partagés.

Une autre méthode lorsque vous utilisez des modules externes est d'utiliser apxs que vous pouvez trouver dans votre répertoire d'installation, mais dans votre cas il semble plus facile de recompiler.

0 votes

J'ai mis à jour le message principal, veuillez vérifier...

0 votes

Ajouté une note à ma réponse concernant make clean avant make

0 votes

Maintenant, l'erreur est devenue celle-ci: make[4]: *** [mod_authnz_ldap.slo] Erreur 1 make[4]: Quitter le répertoire /root/httpd-2.2.31/modules/aaa' make[3]: *** [shared-build-recursive] Erreur 1 make[3]: Quitter le répertoire /root/httpd-2.2.31/modules/aaa' make[2]: *** [shared-build-recursive] Erreur 1 make[2]: Quitter le répertoire /root/httpd-2.2.31/modules' make[1]: *** [shared-build-recursive] Erreur 1 make[1]: Quitter le répertoire /root/httpd-2.2.31' make: *** [all-recursive] Erreur 1

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