Comunicacion tomcat4-apache2, ya no se que hacer.

Cyborg
26 de Mayo del 2004
Buenas, pues eso, lo de arriba no es un marcador de futbol :p, que llevo ya demasiado tiempo dando palos, y por lo visto de ciego pq no consigo nada, he intentado reproducir lo que pone en el howto del jk2 de la pagina de jakarta y nada...
alguien puede orientarme mejor o contar su experiencia con que hay que tocar?

Saludos

cyborg
26 de Mayo del 2004
nadie?
no se que hacer.. ayuda.

alexis
26 de Mayo del 2004
estos son los pasos que yo he seguido:

Cómo Conectar Apache 2 y Tomcat 5 ( de una vez por todas )

0. Descarga de los servidores, conectores y librerias.


Las versiones de los servidores que vamos a utilizar son apache 2.0.49 y tomcat 5.0.19. Los podemos descargar desde las siguientes direcciones :


http://apache.rediris.es/httpd/httpd-2.0.49.tar.gz

http://apache.rediris.es/jakarta/tomcat-5/v5.0.19/src/jakarta-tomcat-5.0.19-src.tar.gz


Usaremos el conector mod_jk2 para que Apache pase las peticiones a Tomcat :

http://apache.oss.eznetsols.org/jakarta/tomcat-connectors/jk2/source/jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz


Necesitamos tener instalados los siguientes paquetes :

apr-0.9.4-2
apr-devel-0.9.4-2
apr-util-0.9.4-2
apr-util-devel-0.9.4-2
automake-1.7.8-1
autoconf-2.57-3
libtool-libs-1.5-8libtool-1.5-8
pcre-4.4-1
pcre-devel-4.4-1

También será imprescindible tener instalado una maquina virtual de java, de aquí en adelante nos referiremos como JAVA_HOME al directorio donde esté instalada



1. Instalación de los servidores.

Al ser este un paso sencillo que no requiere explicación solo diremos que de aquí en adelante llamaremos APACHE_HOME al directorio donde pongamos apache y TOMCAT_HOME al directorio donde pongamos tomcat. Ya se que suena a tontería pero luego nos ahorrará tiempo.

Probamos que los dos servidores funcionen correctamente y los detenemos.



2. Compilar los conectores..

Este es seguramente el paso más dificil de todos ( al menos para mi si que lo fue ).Descomprimimos el archivo de los conectores y entramos en el directorio jakarta-tomcat-connectors-jk2-src-2.0.4/jk/native2/

Los siguientes comandos tendrán que se ejecutados como root :

./configure --with-apxs2=APACHE_HOME/bin/apxs -with-tomcat-41=TOMCAT_HOME --with-apr-lib=/usr/lib/apr --with-java-home=JAVA_HOME --with-jni

Si el proceso de configuración fue bien verás las siguientes lineas al final de los comentarios del configure :

config.status: creating server/apache13/Makefile
config.status: creating server/apache13/Makefile.apxs
config.status: creating server/apache2/Makefile
config.status: creating server/apache2/Makefile.apxs
config.status: creating ../build.properties
config.status: creating scripts/build/unix/dummy
config.status: executing depfiles commands
Ahora ejecutamos make y al final del proceso veremos lo siguiente :
libtool: install: warning: remember to run `libtool --finish
/usr/lib/httpd/modules'
/bin/cp ../../../build/jk2/apache2//usr/lib/httpd/modules/libjkjni.so
../../../build/jk2/apache2/libjkjni.so
make[1]: Leaving directory `/home/chongym/downloads/jk2/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/server/apache2'


Tal y como nos sugiere el mensaje ejecutamos libtool –finnish. Los siguientes pasos son :

cd ../build/jk2/apache2
APACHE_HOME/bin/apxs -n jk2 -i mod_jk2.so


Si todo va bien, veremos lo siguiente :

/usr/lib/httpd/build/instdso.sh SH_LIBTOOL='/bin/sh /usr/lib/apr/build/libtool'
mod_jk2.so /usr/lib/httpd/modules
/bin/sh /usr/lib/apr/build/libtool --mode=install cp mod_jk2.so
/usr/lib/httpd/modules/
cp mod_jk2.so /usr/lib/httpd/modules/mod_jk2.so
Warning! dlname not found in /usr/lib/httpd/modules/mod_jk2.so.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/lib/httpd/modules/mod_jk2.so


Ahora ya podemos copiar los modulos :

cp libjkjni.so APACHE_HOME/modules/jkjni.so
cp mod_jk2.so APACHE_HOME/modules/mod_jk2.so



3. Configurar los servidores.


Finalmente solo tenemos que modificar los siguientes archivos:


APACHE_HOME/conf/httpd.conf


Añadimos la siguiente línea en el apartado LoadModules :
LoadModule jk2_module /usr/lib/httpd/mod_jk2.so


APACHE_HOME/conf/workers2.properties


[logger]
# outcomment this in production use
level=DEBUG
[config:]
file=/project/www/apache-2.0.49/conf/workers2.properties
debug=0
debugEnv=0
[uriMap:]
info=Maps the requests. Options: debug
debug=1
[shm:]
info=Scoreboard. Required for reconfiguration and status with multiprocess servers
file=/project/www/apache-2.0.49/logs/jk2.shm
size=1000000
debug=0
disabled=0
[workerEnv:]
info=Global server options
timing=1
debug=0
[status:]
info=Status worker, displays runtime informations
[uri:localhost/jkstatus/*]
info=Display status information and checks the config file for changes.
group=status:
[channel.socket:localhost:8009]
info=Ajp13 forwarding over socket
# Define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009

[uri:localhost/jsp-examples/*]
info=jsps
[uri:localhost/servlets-examples/*]
info=servlet
[uri:localhost/tu_aplicacion/*]
info=mi_aplicacion




TOMCAT_HOME/conf/jk2.properties


# jk2.properties
# Configured for channel UNIX
# Set the desired handler list
handler.list=apr,request,channelUnix
# UNIX Domain socket location
channelUnix.file=/project/www/tomcat-5.0.19/work/jk2.socket
# Dynamic Library
serverRoot=/etc/httpd
apr.NativeSo=/project/www/apache-2.0.49/modules/jkjni.so


4. Probar que todo funciona.


Solo nos queda iniciar tomcat y luego apache y visitar con nuestro navegador

http://localhost/jsp-examples/

http://localhost/servlets-examples/

Ahora podemos instalar las aplicaciones en tomcat ( doy por sabido como hacer esto ), modificar el archivo workers2.properties y visitar http://localhost/mi_aplicacion/

Cyborg
26 de Mayo del 2004
wow!
Estoy usando el tomcat4 ya que con el 5 me era imposible usar un pool de conexiones, y fue poner el 4 y sin mas problemas todo a la primera.

Sobre esto...
apr-0.9.4-2
apr-devel-0.9.4-2
apr-util-0.9.4-2
apr-util-devel-0.9.4-2
automake-1.7.8-1
autoconf-2.57-3
libtool-libs-1.5-8libtool-1.5-8
pcre-4.4-1
pcre-devel-4.4-1
tantos?
ah.. espera.. a ver si me entero todo eso es para genera el mod_jk2.so no?
bueno no hay problema ya lo tengo, uso suse9 y el binario para suse es de los pocos que ya se encuentran hechos., pq todo eso es para generar el mod_jk2 no?

bueno pues gracias y vamos a probar, pq llevo dando palos de ciego...
gracias.
Saludos