martes, enero 17, 2006

APACHE2+TOMCAT5+JAVA1.5+mod_jk

Copio un texto que escribì antes de ayer por la noche, que tal vez les sirva a màs de uno que ande dando vueltas con web-servers.

La combinaciòn descripta en el tìtulo del thread, suele traer algunas complicacioes. Acà les dejo un tuto recièn escrito, aplicable a la mayorìa de las distros, ya que todo se compila.

APACHE2+TOMCAT5+JAVA1.5+mod_jk por Sebastiàn Sàenz Ford

La instalaciòn fue probada con èxito en los siguientes sistema: Debian Sarge; Ubuntu 5.10; Red Hat Enterprise 4 AS. Como todas las aplicaciones se compilan, deberìa funcionar en cualquier distribuciòn GNU/Linux.

Notas: los archivos obtenidos de internet seràn guardados en el home del usuario que utilicemos. En mi caso /home/ssf80/apps/ ,que para mayor facilidad llamaremos al path $HOME. Es pràctico para tener un backup de los instaladores.


1)Instalaciòn de APACHE
Creamos la carpeta en donde guardaremos el tar.gz que bajamos de internet.
$:cd $HOME
$:mkdir apache
Se utiliza la versiòn de Apache 2.0.55 Download --> http://apache.mesi.com.ar/httpd
httpd-2.2.0.tar.gz

Vamos a instalar Apache en /usr/local/apache_2.0.52
$:cd apache
$:cp httpd-2.2.0.tar.gz /usr/local/
$:cd /usr/local
$:tar zxvf httpd-2.2.0.tar.gz
$:cd httpd-2.2.0
$:./configure --with-layout=Apache --prefix=/usr/local/apache2 --enable-module=most --enable-mods-shared=most
###Y las ùltimas lìneas deberìan ser del tipo:
###config.status: creating build/config_vars.sh
###config.status: creating include/ap_config_auto.h
###config.status: executing default commands
$:make
###Y las ùltimas lìneas deberìan ser del tipo:
###lib/apr-util/xml/expat/lib/libexpat.la /usr/local/httpd-2.2.0/srclib/apr/libapr-1.la -lrt -###lcrypt -lpthread -ldl
###make[1]: Leaving directory `/usr/local/httpd-2.2.0'
$:make install
###Y las ùltimas lìneas deberìan ser del tipo:
###mkdir /usr/local/apache2/man/man8
###mkdir /usr/local/apache2/manual
###make[1]: Leaving directory `/usr/local/httpd-2.2.0'
$:cd ..
Borramos httpd-2.2.0.tar.gz de /usr/local ya que lo tenemos en $HOME/apache
$:rm -f httpd-2.2.0.tar.gz
Ya tenemos instalado Apache 2.0.55

2) Instalaciòn de Java
$:cd $HOME
$:mkdir java
Procederemos a la instalaciòn de Java 2 Platform Standard Edition 5.0. Download --> https://sdlcweb2d.sun.com/ECom/ECom...6F57DC1F32F006D
Debemos aceptar la licencia y luego bajar el archivo jdk-1_5_0_06-linux-i586.bin
La instalaciòn de java la realizaremos en /usr/java
$:cd /usr
$:mkdir java
$:cd java
Copiamos el instalador a /usr/java
$:cp $HOME/java/jdk-1_5_0_06-linux-i586.bin .jdk-1_5_0_06-linux-i586.bin
Otorgamos permisos de ejecuciòn.
$:chmod 755 jdk-1_5_0_06-linux-i586.bin
Ejecutamos el instalador
$:./jdk-1_5_0_06-linux-i586.bin
Eliminamos el ejecutable de /usr/java
$:rm -f jdk-1_5_0_06-linux-i586.bin
Ahora deberemos crear la variable global JAVA_HOME y agregar al PATH la ruta del ejecutable de java. Editamos /etc/profile agregando las siguientes lìneas al final del archivo:
$:vi /etc/profile
JAVA_HOME=/usr/java/jdk1.5.0_06
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME


3) Instalaciòn de TOMCAT
Utilizaremos la versiòn 5.0.28 de Tomcat que la podemos bajar de http://apache.xmundo.com.ar/tomcat/...t-5.0.28.tar.gz
Al igual que apache y java creo un directorio en donde guardar el .tar.gz.
$:cd $HOME
$:mkdir tomcat
La instalaciòn de tomcat la realizaremos en /usr/local
$:cd tomcat
Copiamos el .tar.gz a /usr/local
$:cp jakarta-tomcat-5.0.28.tar.gz /usr/local
$:cd /usr/local
Descomprimimos
$:tar zxvf jakarta-tomcat-5.0.28.tar.gz
Borramos jakarta-tomcat-5.0.28.tar.gz de /usr/local ya que lo tenemos en $HOME/tomcat
$:rm -f jakarta-tomcat-5.0.28.tar.gz
Creamos un enlace simbòlico que nos facilitarà la administraciòn de tomcat.
$:ln -s jakarta-tomcat-5.0.28 tomcat5

4) Instalaciòn de conector mod_jk.
Se utiliza la versiòn 1.2.15 del conector mod_jk que se puede bajar de http://www.apache.org/dist/tomcat/t...2.15-src.tar.gz que guardaremos $HOME/mod_jk
$:cd $HOME
$:mkdir mod_jk


Para instalar mod_jk necesitamos los siguientes pre-requisitos:
a) libtool:
Para corroborar si nuestro sistema tiene libtool:
$:which libtool
Si tenemos como respuesta algo del tipo /usr/local/bin/libtool el sistema alberga libtool.
En caso contrario deberemos bajar libtool de ftp:/ftp.gnu.org/gnu/libtool e instalamos:
$:./configure
$:make
$:make install

b) autoconf. Corroboramos:
$:which autoconf
Si tenemos como respuesta algo del tipo /usr/bin/autoconf el sistema alberga autoconf
En caso contrario deberemos bajar autoconf de ftp://ftp.gnu.org/autoconf e instalamos:
$:./configure
$:make
$:make install

c) Ant:
Para esta guìa se utilizò la versiòn 1.6.5 de Ant, que se puede obtener de http://apache.mesi.com.ar/ant/binar....6.5-bin.tar.gz que la guarderemos en $HOME/ant.
$:cd $HOME
$:mkdir ant
$:cd ant
$:cp apache-ant-1.6.5-bin.tar.gz /usr/local
$:cd /usr/local
$:tar zxvf apache-ant-1.6.5-bin.tar.gz
$:rm -f apache-ant-1.6.5-bin.tar.gz
$:ln -s apache-ant-1.6.2 ant

Debemos crear la variable global ANT_HOME=/usr/local/home:
$:vi /etc/profile
Y recordando que ya habìamos editado este archivo, deberìa quedar de la siguiente manera sus ùltimas lìneas:

JAVA_HOME=/usr/java/jdk1.5.0_06
ANT_HOME=/usr/local/ant
PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME
export PATH JAVA_HOME ANT_HOME

Para que el sistema tome los nuevos valores de /etc/profile:
$:source /etc/profile

Procedemos a la instalaciòn de mod_jk:
$:cd $HOME/mod_jk
$:tar zxvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
$:cd jakarta-tomcat-connectors-1.2.15-src/jk/native/
$:./configure --with-apxs=/usr/local/apache2/bin/apxs --enable-EAPI
$:make
$:cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules

5) Configuraciòn de mod_jk para Apache2
Creamos el archico workers.properties en /usr/local/apache2/conf
$: vi /usr/local/apache2/conf/workers.properties
Y copiamos lo siguiente:
workers.tomcat_home=/usr/local/tomcat5
workers.java_home=$JAVA_HOME
ps=/
worker.list=default

worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

Configuramos Apache:
$:vi /usr/local/apache2/conf/httpd.conf
En la secciòn de de "LoadModules" agregamos al final:
LoadModule jk_module modules/mod_jk.so
Y en la secciòn 3, y al final de todo:
#
# Opciones de mod_jk
#

JkWorkersFile "conf/workers.properties"
JkLogFile "logs/mod_jk.log"

JkLogLevel error

JkMount /jsp-examples default
JkMount /jsp-examples/* default

# Fin de opciones de mod_jk

Vereficamos la correcta sintaxis de http.conf:
$:cd /usr/local/apache2/bin
$:./apachectl configtest

6) Testing
Llego la hora de probar que todo funcione correctamente. Como recomendaciòn, siempre levanten el servicio de Tomcat y luego Apache. Para bajar los servicios, primero Tomcat y luego Apache

a) Levantamos Tomcat
$:cd /usr/local/tomcat5/bin/
$:./catalina.sh start
Deberemos vereficar corroborando si levantò el el/los procesos java:
$ps -ef | grep java

###Y deberìamos tener como resultado algo del estilo:
###root 9038 1 4 17:54 pts/0 00:00:07 /usr/java/jdk1.5.0_06/bin/java -###Djava.endorsed.dirs=/usr/local/tomcat5/common/endorsed -classpath /usr/java/jdk1.5.0_06/lib/###tools.jar:/usr/local/tomcat5/bin/bootstrap.jar:/usr/local/tomcat5/bin/commons-logging-api.jar -###Dcatalina.base=/usr/local/tomcat5 -Dcatalina.home=/usr/local/tomcat5 -Djava.io.tmpdir=/usr/###local/tomcat5/temp org.apache.catalina.startup.Bootstrap start

b) Levantamos Apache:
$:cd ../../apache2/bin
$:./apachectl start

Podemos vereficar Apache ingresando a:
http://localhost
Tomcat:
http://localhost:8080
Y el conectos mod_jk:
http://localhost/jsp-examples

Para bajar los servicios lo mismo pero con "stop".
Por ejemplo para bajar Tomcat:
$:cd /usr/local/tomcat5/bin
$:./catalina.sh stop