lunes, agosto 14, 2006

Nueva WEB www.ubuntu-argentina.com.ar

Tengo la agradable noticia de informar que a partir del día de la fecha nuestro blog tiene su propia portal www.ubuntu-argentina.com.ar por lo que todos los temas del blog han sido copiados al portal, y por supuesto podrán encontrar contenidos nuevos además de todos los beneficios de un portal propiamente dicho.
Saludos a todos los lectores!!!.

jueves, abril 27, 2006

COMO Tomcat

NOTA: La instalación de Tomcat se obvia ya que la podemos ver en este mismo blog en la entrada "Apache2+Tomcat5+Java1.5+mod_jk".

Una manera simple y rápida de definir Tomcat, es decir que es un contenedor Servlet/JSP. Los Servlet son objetos que corren dentro del contexto de un servidor web. Generan páginas web dinámicas a partir de los parámetros de la petición que envía el navegador web. Se ejecuta en un servidor o contenedor J2EE (Java 2 Enterprise Edition), por ejemplo, Tomcat.
JSP (Java Server Pages) es la tecnología para generar páginas web de forma dinámica en el servidor, basado en scripts que utilizan una variante del lenjuage java.
Una pequeño agregado sobre la instalación. Cuando nos referimos a $CATALINA_HOME, nos referimos al root del la instalación de Tomcat.

Directorios Tomcat: Una instalación de Tomcat se divide en una serie de directorios, que pasaremos a describir:
bin/ binarios ejecutables y scripts.
conf/ archivos de configuración. El más importante es el server.xml que es el archivo principal de configuración del contenedor.
logs/ donde se generan los logs.
webapps/ contiene las aplicaciones web.
common/ classes disponibles, tanto internas de catalina como de aplicaciones web.
server/ classes internas de catalina y sus dependencias
shared/ classes compartidas por todas las aplicaciones web.
work/ directorio scratch usado por Tomcat para retener archivos y directorios temporales.
temp/ usado por JVM para archivos temporales.


Tanto0 server/, commom/ como shared/ se dividen en:
classes/ classes desempaquetadas.
lib/ classes empaquetadas.

Continúa ...

jueves, marzo 09, 2006

COMO instalar un sistema Corpus

El servidor tiene como fin prestar el servicio de administración de corpus, utilizando para tal fin la aplicación Manatee. Además deberá contar con Apache 2 con módulo webdav, php con soporte mysql y Java 1.4.2. Apache 2 con módulo webdav y php con soporte mysql serán instalados directamente con la instalación del sistema operativo.


1)

Características del servidor: DL-380G4, 1Gb de RAM y 4 discos de 146 Gb en raid5.

Sistema Operativo: Red Hat 4 Enterprise ES

Nombre de host: a elección

Particionado:

3.0G /

76M /boot

58G /home

2.0G /tmp

5.8G /usr

334G /var

2G SWAP


Selección de paquetes requeridos y recomendables para la instalación:


Editors

Text-based internet

Server Configuration Tools

Development tools

Kernel Development

Legacy Software Development

Administrator Tools

System Tools

Web Server


2) Instalación de Java 1.4.2:


Bajar j2sdk-1_4_2-linux-i586.bin de http://java.sun.com/j2se/1.4.2/download.html y copiar el mismo a /usr. Dar permisos de ejecución:

#chmod 755 j2sdk-1_4_2-linux-i586.bin

Ejecutar el .bin:

#./j2sdk-1_4_2-linux-i586.bin


Crear la variable global JAVA_HOME y agregar al PATH la ruta del ejecutable de java para lo cual, editar /etc/profile y agregar 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


Para tomar los cambios:

#source /etc/profile


3) Instalación de Manatee

Crear el usuario corpadm

#adduser corpadm

y setear su correspondiente password:

#passwd corpadm

Crear el directorio registry en /home/corpadm para guardar los futuros archivos de configuración correspondientes a los corpus.

#cd /home/corpadm

#mkdir registry

Agregar la variable de entorno MANATEE_REGISTRY editando /etc/profile

#vi /etc/profile

Y al final del mismo copiar:


MANATEE_REGISTRY=/home/corpadm/registry

export MANATEE_REGISTRY


Para que el sistema tome los cambios:

#source /etc/profile


Descomprimir manatee-1.94.tar.gz que se obtiene en http://www.textforge.cz/download.html. En esta guía se descomprimirá en /home/sford:

#cd /home/sford

#tar zxvf manatee-1-49.tgz

#cd manatee-1-49


Editar el archivo Makefile y comentar las siguientes lineas:

#vi Makefile


# /etc/inetd.conf

#@grep -q -e '^manatee' /etc/inetd.conf ||
(echo; echo "#Manatee Server";
echo "manatee stream tcp nowait $(MANATEE_USER) /usr/bin/perl Manatee $(MANATEE_DIR)/runm.pl") >>/etc/inetd.conf

# /etc/services

#@grep -q -e '^manatee' /etc/services ||
# echo "manatee $(SERVER_PORT)/tcp # Manatee Server" >>/etc/services

# rereads inetd configuration

#killall -q -HUP inetd


Instalar Manatee:

#make install-inetd


Como Manatee utiliza el servicio xinetd se debe configurar el mismo; editar /etc/services y crear el archivo /etc/xinetd.d/manatee


#vi /etc/services

Y agregar al final del archivo:


manatee 5016/tcp # Manatee Server


#vi /etc/xinetd.d/manatee

Y copiar las siguientes lineas:


service manatee

{

flags = REUSE

socket_type = stream

wait = no

user = corpadm

server = /usr/bin/perl

server_args = /home/corpadm/runm.pl

disable = no

}


Reiniciar el servicio xinetd:

#/etc/init.d/xinetd restart


4) Configurar Manatee


La aplicación Manatee será administrada por un usuario distinto a root por lo que se debe setear los permisos correspondientes:


4.1) Permisos del home de Manatee. Dar permisos de lectura, escritura y ejecución al dueño y al grupo y permisos de lectura y ejecución al resto:

#cd /home

#chmod 775 /home/corpadm


4.2) Los archivos que fueron creados dentro de /home/corpadm con la instalación de corpadm (chuser, runm.pl y users) como así el directorio registry creado con anterioridad deberán tener como dueño al usuario y grupo corpadm:

#chown -R corpadm:corpadm corpadm


Y los siguientes permisos:

#chmod 755 chuser

#chmod 755 runm.pl

#chmod 644 users

#chmod 775 registry




4.3) Vereficar los permisos de /usr/local/bin/encodevert que deberá tener el siguiente formato:

-rwxrwx--- 1 root corpadm


En caso contrario setear los permisos correspondientes:

#chown root:corpadm /usr/local/bin/encodevert

#chmod 770 /usr/local/bin/encodevert


5) Generar el directorio /var/corpora que será utilizado a la hora de generar un corpus:

#cd /var

#mkdir corpora

#chown corpadm:corpadm corpora

#chmod 755 corpora


6) Operatoria Manatee

Generar usuarios en Manatee: Para generar usuarios con acceso al servidor de Manatee utilizar el comando chuser ubicado en /home/corpadm

#cd /home/corpadm

Para ver su help:

#./chuser -h

Crear un usuario llamado prueba:

#./chuser -new prueba -p 123456 -corplist corpusABC

en donde -new indica el nombre del usuario, -p el password del mismo y -corplist el nombre del archivo corpus.

La entrada del usuario recién creado se podrá comprobar en /home/corpadm/users

#vi /home/corpadm/users


test1:iXVUIZqOfl/x6::0:0:corpusABC

Actualización APACHE2+TOMCAT5+JAVA1.5+mod_jk

En esta oportunidad vamos a agregar los scripts necesarios para poder iniciar de una manera simple Apache y Tomcat, y además poder iniciarlos automáticamente al bootear nuestro sistema. En la próxima entrega finalizaremos con la configuración óptima para evitar problemas de seguridad:

Creación de script de inicio pada Apache2:

#>vi /etc/init.d/httpd

#!/bin/sh

case "$1" in
start)
/usr/local/apache2/bin/apachectl start
;;
stop)
/usr/local/apache2/bin/apachectl stop
;;
restart)
$0 stop && sleep 3
$0 start
;;
reload)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac

#>chmod 755 /etc/init.d/httpd
#>ln -s /etc/init.d/httpd /etc/rc2.d/S20httpd
#>ln -s /etc/init.d/httpd /etc/rc3.d/S20httpd
#>ln -s /etc/init.d/httpd /etc/rc4.d/S20httpd
#>ln -s /etc/init.d/httpd /etc/rc5.d/S20httpd
#>ln -s /etc/init.d/httpd /etc/rc0.d/K20httpd
#>ln -s /etc/init.d/httpd /etc/rc1.d/K20httpd
#>ln -s /etc/init.d/httpd /etc/rc6.d/K20httpd

Script de arranque de Tomcat5

#!/bin/sh

case "$1" in
start)
/var/tomcat5/bin/catalina.sh start
;;
stop)
/var/tomcat5/bin/catalina.sh stop
;;
restart)
$0 stop && sleep 3
$0 start
;;
reload)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac

#>chmod 755 tomcat5

#>vi /etc/init.d/tomcat5

#>ln -s /etc/init.d/tomcat5 /etc/rc2.d/S21tomcat5
#>ln -s /etc/init.d/tomcat5 /etc/rc3.d/S21tomcat5
#>ln -s /etc/init.d/tomcat5 /etc/rc4.d/S21tomcat5
#>ln -s /etc/init.d/tomcat5 /etc/rc5.d/S21tomcat5
#>ln -s /etc/init.d/tomcat5 /etc/rc0.d/K21tomcat5
#>ln -s /etc/init.d/tomcat5 /etc/rc1.d/K21tomcat5
#>ln -s /etc/init.d/tomcat5 /etc/rc6.d/K21tomcat

A partir de este momento, tanto Apache como Tomcat iniciarán de modo automático y podremos parar, empesar o reiniciar los servicios de la siguiente manera:

/etc/init.d/httpd stop ###Para parar el servicio
/etc/init.d/httpd start ###Parar arrancar el servicio
/etc/init.d/httpd restart ### Reiniciar el servicio

Y para Tomcat los mismo reemplazando donde dice Apache por Tomcat.

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