miércoles, 26 de mayo de 2010

Instalar Tomcat 5.5 como Modulo de Apache2 en Debian Lenny (x86_64)


Como saben para ejecutar programas en java dentro de un entorno web nececitan JDK y Tomcat. JDK para la maquina virtual, runtime environment y librerías de desarrollo; y Tomcat para que haga el nexo entre la maquina virtual y el servidor Web para las Peticiones jsp al Servidor. Bueno al Grano...

Instalar Java JDK

1.- Bajar JDK 6
- Ir a https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter;pgid=yYdgaHqkkjVSR0EUPIQsoQ3D0000ZcOgBC2L;sid=vonM11rLonHM1hE2N7RFKUpk-NJJQehcAwp-QOdIV_of16OghX4=?DLWidget=true&AutoWidgetDL=


2.- Crear directorio para java

# mkdir /usr/java

3.- Mover JDK al directorio creado e ir al directorio creado

# mv /"tu carpeta"/*.bin /usr/java

#cd /usr/java

4.- Establecer derechos de ejecución

$ chmod a+x jdk-6u20-linux-x64.bin

5.- Ejecutarlo

#./jdk-6u20-linux-x64.bin

Aceptar licencia? yes

6.- Editar variables de entorno

# nano /root/.bashrc

Añadir las siguientes líneas al archivo:

export JAVA_HOME=/usr/java/jdk1.6.0_20
export PATH=$JAVA_HOME/bin:$PATH

7.- Debemos reiniciar la sesión root (el archivo de variables de entorno depende del usuario). Si estamos con putty salimos y volvemos a entrar. Si estamos en la propia consola cerramos la sesión e iniciamos otra vez.


8.- Probamos que JDK está instalado y funcionando:

# java -version

Saldrá un mensaje como:

java version "1.6.0_0"
OpenJDK Runtime Environment (build 1.6.0_0-b11)
OpenJDK 64-Bit Server VM (build 1.6.0_0-b11, mixed mode)

Instalar Tomcat

1.- Instalar Tomcat 5.5 desde el repositorio

# aptitude install tomcat5.5

Se descargan paquetes y se instala.
2.- Comprobamos que funciona con la configuración por defecto

# netstat -tapn | grep 8180

debería salir el puerto en LISTEN iniciado por el proceso java

Instalar conector Tomcat - Apache mod_jk

Se necesita Apache y Tomcat funcionando. El funcionamiento del conector es el siguiente:
- El cliente llama a http://....:8180 (por ejemplo)
- Apache recoge la petición y la procesa por el Virtual Host configurado para escuchar el puerto 8180
- La configuración del Virtual Host reenvía la petición al worker del mod_jk definido.
- El worker redirecciona la petición al puerto 8009 del puente con Tomcat definido en workers.properties
- Tomcat recoge la petición y la procesa

1.- Instalar mod_jk

# aptitude install libapache2-mod-jk

2.- Editar configuración del mod_jk

# nano /etc/libapache2-mod-jk/workers.properties

Editamos / Agregamos las siguiente lineas:

workers.tomcat_home=/usr/share/tomcat5.5
workers.java_home=/usr/java/jdk1.6.0_20
ps=/

worker.ajp13_worker.cache_timeout=600
worker.ajp13_worker.socket_timeout=300

Descomentar y agregar "=10"

worker.ajp13_worker.cachesize=10

3.- Crear y editar la configuración del mod_jk para el uso de apache

# touch /etc/apache2/mod_jk.conf
#nano /etc/apache2/mod_jk.conf

Añadimos las siguientes líneas:

JkWorkersFile /etc/libapache2-mod-jk/workers.properties
JkShmFile /var/log/apache2/mod_jk.shm
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%S %Y] "

4.- Añadir configuración a la declaración del módulo

# nano /etc/apache2/mods-enabled/jk.load

Debajo del LoadModule ponemos:

Include /etc/apache2/mod_jk.conf

5.- Creamos el directorio para nuestra aplicación

#cd var

# mkdir tomcat

#cd tomcat

#mkdir webapps

#cd webapps

#mkdir aplicacion

6.- Añadimos un nuevo Virtual Host en Apache

# nano /etc/apache2/sites-enabled/000-default



ServerAdmin webmaster@localhost
ErrorLog /var/log/tomcat5.5/aplicacion_error.log
CustomLog /var/log/tomcat_5.5/aplicacion_access.log common
JkMount /* ajp13_worker


deny from all







Añadimos al final del archivo el nuevo VirtualHost









7.- Añadimos el nuevo puerto a ser escuchado

$ nano /etc/apache2/ports.conf

Añadimos despues de VirtualHost *80 Listen 80...

NameVirtualHost *:8180

Listen 8180

8.- Reiniciamos Tomcat y Apache

$ /etc/init.d/apache2 restart
$ /etc/init.d/tomcat5.5 restart


Referencia:

http://www.syntaxerror.es/2007/11/05/instalar-tomcat-55-como-modulo-de-apache2-en-debian-4-etch/

miércoles, 19 de mayo de 2010

Compilar e Instalar DimDim 4.5 en CentOS 5.5 (x86_64)


DimDim Es una aplicación para reuniones (Web Meeting) o encuentros en un web browser(navegador), provee: video conferencias, pizarrones compartidos, compartir documentos, etc...
En este minitutorial la idea es mostrar como compilar e instalar esta aplicación en un servidor con CentOS de arquitectura x86-64, se preguntarán porque CentOS si siempre hago reseñas a software para linux Debian. Bueno por esto mismo despues de lograr compilar DimDim en un paquete rpm para arquitectura x86-64, lo exportaré a un paquete .deb para ser instalado de una maquina con LINUX DEBIAN con las mismas características (En el siguente POST XD...).

A diferencia de Debian, CentOS (Basado en Redhat) trabaja con un manejador de paquetes llamado YUM, el que funciona de la misma manera que "apt-get" en debian.

Instalación de Compiladores y Librerías Necesarias

# yum install gcc-c++
# yum install gdb

# yum install pcre-devel
# yum install libjpeg-devel
# yum install zlib-devel

# yum install libpng-devel
# yum install python-devel

# yum install zlib*

Instalación de OpenOffice version 3.o

chequea si tienes OpenOffice Instalado (al ingresar el comando te dará la ruta del Office):

# find / -name soffice.bin | grep openoffice | grep program | grep org3

en caso de que no este instalado ejecuta lo sgte:

descarga:
#wget http://mirrors.isc.org/pub/openoffice/stable/3.0.0/OOo_3.0.0_LinuxIntel_install_wJRE_en-US.tar.gz

o

#wget
http://download.services.openoffice.org/files/stable/3.0.0/OOo_3.0.0_LinuxX86-64_install_wJRE_en-US.tar.gz

descomprime:

#tar xvzf
OOo_3.2.0_LinuxX86-64_install_wJRE_en-US.tar.gz

entra al directorio:

#cd OOo_3.2.0_LinuxX86-64_install_wJRE_en-US

entra al directorio RPMS:

#cd RPMS

instala todos los rpm's:

#rpm -ivh *.rpm

Instalación de JAVA version 1.6 (JDK)

descarga:

http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u20-linux-x64-rpm.bin?BundledLineItemUUID=u4uJ_hCxa2sAAAEoSZUFObEU&OrderID=emaJ_hCx_voAAAEoOZUFObEU&ProductID=d8tIBe.o6WMAAAEnYDJHqPYe&FileName=/jdk-6u20-linux-x64-rpm.bin

instala:
# chmod 777 jdk-6u17-linux-x64-rpm.bin
# ./jdk-6u17-linux-x64-rpm.bin



Instalación de Librerías Python

NOTA:
para todas estas librerías que se instalarán deberas chequear su instalación de la siguiente manera:

#python2.x

donde x es la version de python variará de 4 a 5 durante la instalación de dimdim
este es el output que deberias obtener al importar la librería, de no ser el caso algo fallo en la instalación de la librería:

Python 2.4.3 (r252:60911, Oct 9 2008, 08:13:08) [GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>import cherrypy >>>

Cherrypy

descarga:
#wget http://download.cherrypy.org/cherrypy/3.1.0/CherryPy-3.1.0.zip

Instalación:

#unzip CherryPy-3.1.0.zip
#cd CherryPy-3.1.0 and chmod +x *

#python2.4 setup.py install


chequear instalación con NOTA al comienzo.

Flup

descarga:
#wget
http://www.saddi.com/software/flup/dist/flup-1.0.tar.gz


Instalación:

#tar xvzf flup-1.0.tar.gz
#cd flup-1.0 and chmod +x *
#python2.4 ez_setup.py -U setuptools
#python2.4 setup.py install


chequear instalación con NOTA al comienzo.


Pycurl

descarga:
#wget
http://curl.haxx.se/download/curl-7.19.0.tar.gz

Instalación:

#untar it tar xzf curl-7.19.0.tar.gz
#cd curl-7.19.0
#./configure
#make
#make install


Después de haber instalado pycurl debes hacer un softlink con la siguiente sentencia:

#ln -s /usr/local/lib/libcurl.so.4 /usr/lib/libcurl.so.4


chequear instalación con NOTA al comienzo.

Si te falla el chequeo de ésta librería (como a mí) debes editar el archivo ldconf y agregar la ruta que pusiste en el softlink en este archivo, me explico:

1.- edita el archivo ld.so.conf y agrega la linea /usr/local/lib al archivo (que seguramente tendra solamente la linea include ld.so.conf.d/*.conf).

#cd /etc/ #nano ld.so.conf

2.- Sale del editor (ctrl+X) y ejecuta ldconfig.

#ldconfig

3.- Prueba ahora si python importa la librería (>>>import pycurl ).

#python2.4 >>>import pycurl >>>
Esto se debe a que python no ve esta libreria dado que no ve la ruta especificada en las rutas de librerías de sistema, por eso debemos agregar el directorio /usr/local/lib al archivo ld.so.conf y ejecutar ldconfig.

demjson

descarga:

#wget http://deron.meranda.us/python/demjson/dist/demjson-1.3.tar.gz



Instalación:

#tar xzf demjson-1.3.tar.gz
#cd demjson-1.3 and chmod +x *
#python2.4 setup.py install


chequear instalación con NOTA al comienzo.



Instalación de Python2.5

descarga:
#wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz


Instalación:

#tar xvzf Python-2.5.2.tgz
#cd Python-2.5.2
# ./configure
#make && make install



UFFF...Ahora necesitamos instalar todas las librerias python anteriores en python2.5....


Cherrypy para python2.5


Instalación:

Ve al directorio donde descargaste
CherryPy-3.1.0 . (ayuda: puedes encontrarlo con #find | grep CherryPy-3.1.0)
#cd CherryPy-3.1.0
#python2.5 setup.py install
#rm -rf CherryPy-3.1.0
#rm -rf CherryPy-3.1.0.zip


chequear instalación con NOTA al comienzo de la seccion instalación de librerias python, reemplazando la x por 5 ahora.


Flup para python2.5


Instalación:

Ve al directorio donde descargaste flup
#cd flup-1.0 and chmod +x *
#python2.5 ez_setup.py -U setuptools
#python2.5 setup.py install
#rm -rf flup-1.0
#rm -rf flup-1.0.tar.gz


chequear instalación con NOTA al comienzo de la seccion instalación de librerias python, reemplazando la x por 5 ahora.

demjson
para python2.5

Instalación:

Ve al directorio donde descargaste demjson
#cd demjson-1.3 and chmod +x *
#python2.5 setup.py install
#rm -rf demjson-1.3
#rm -rf demjson-1.3.tar.gz

chequear instalación con NOTA al comienzo de la seccion instalación de librerias python, reemplazando la x por 5 ahora.

pycurl para python2.5


Instalación:

Ve al directorio donde descargaste
pycurl
#cd curl-7.19.0
#easy_install-2.5 pycurl


chequear instalación con NOTA al comienzo de la seccion instalación de librerias python, reemplazando la x por 5 ahora.



Instalación de FCGI

#wget http://www.fastcgi.com/dist/fcgi.tar.gz #tar xvzf fcgi-2.4.0.tar.gz #cd fcgi-2.4.0 # ./configure
# make
# make install

librerias instaladas en:
/usr/local/lib

Instalación de Corona

wget http://prdownloads.sourceforge.net/corona/corona-1.0.2.tar.gz
#tar xvzf corona-1.0.2.tar.gz #cd corona-1.0.2 # ./configure
# make
# make install

librerias instaladas en:
/usr/local/lib

Instalación de Ant

en la raiz
#cd /usr/local

#mkdir ant
#cd ant

#wget http://apache.freeby.pctools.cl/ant/binaries/apache-ant-1.8.1-bin.zip
# unzip apache-ant-1.8.0-bin.zip

#export ANT_HOME=/usr/local/ant/apache-ant-1.8.0


Preparación de Directorios y Scripts para Compilar Sources

Descargar Sources:

#wget http://sourceforge.net/settings/mirror_choices?projectname=dimdim&filename=Dimdim%20v4.5%20Release/Dimdim%20v4.5%20Sourcecode/Dimdim_v4.5_SourceCode.zip

#mkdir /usr/local/webinar
#mv Dimdim_v4.5_SourceCode.zip /usr/local/webinar

#cd /usr/local/webinar/
#unzip
Dimdim_v4.5_SourceCode.zip

Crea directorio:

# mkdir usr/local/Dependencies/Reflector/corona_fcgi_libs

y copia las librerias a este directorio.

# cp usr/local/lib/*so* /usr/local/Dependencies/Reflector/corona_fcgi_libs

Crea un directorio temporal "tmp" como se describe(build no lo crea!)

# mkdir /usr/local/webinar/v4.1/WebApps/ServerII/tmp

# cd /usr/local/webinar/v4.1/FCGIApps/Reflector

#nano compile_all.sh

y Especifíca la ruta de corona y fcgi como (modificar lineas al archivo compile_all.sh):

# export FCGI_DIR=/usr/local/lib
# export CORONA_DIR=/usr/local/lib

Guarda los cambios y sal del editor (crtl+O - ctrl+X).

Haz una estructura de directorios como la siguente (mkdir)

/usr/local/webinar/
—–v4.1
———-Dependencies
—————Reflector
——————-corona_fcgi_libs

Ahora
# cp /usr/local/lib/*so* /usr/local/webinar/v4.1/Dependencies/Reflector/corona_fcgi_libs/

Intenta Compilar el script

# cd /usr/local/webinar/v4.1/Product/Build/Scripts/SF_RPM_Script/
# ant -f Dimdim_SF_32_v4.5_build.xml build

Si todo fue bien deberias encontrar el RPM para instalar dimdim en el siguiente directorio

#cd /usr/src/redhat/RPMS/x86_64

Antes de instalar el RPM te recomiendo que sigas las siguientes sugerencias:

NOTA:
remover carpeta

/usr/local/webinar/BUILD files

Evitar el chequeo de sistema operetivo:

Dimdim-4.5 requiere CentOS 5.2 … si quieres instalarlo en una version superior de CentOSif haz

lo siguiente.


edita el archivo issue en /etc/

#nano /etc/issue

reemplaza la version de CentOS que poseas por la 5.2

ej: CentOS release 5.5 (Final) a CentOS release 5.2 (Final)

FINALMENTE Ejecuta el RPM

#cd /usr/src/redhat/RPMS/x86_64/
#rpm -ivh dimdim-4.5-1.x86_64.rpm

Detener Arrancar dimdim

#startDimdim
#stopDimdim


Listo

prueba: http://localhost(ip servidor)/dimdim

juegue......

Open SSH

Open SSH es una manera remota de acceder a tu computador de manera segura. Toda la informacion que viaje por la red entre el cliente y el servidor SSH viajara encriptada, por lo que te asegura que nadie podra entender dicha información si no tiene la "key"(llave).

Open SSH es una herramienta muy util para acceder a consolas linux ubicadas en distintas locaciones, esto sirve si quieres dejar descargando un archivo mediante "wget", instalar paquetes mediante "apt-get", transferir archivos entre los computadores, etc.. de manera remota y que el servidor haga el resto. Esto lo conseguiremos con los siguientes pasos:

1.- Ejecuta como "Super User"(su).

#apt-get install openssh-server openssh-client


Con esto se instala el servidor y el cliente SSH en cualquier debian linux.

Ahora para acceder al servidor debes conocer su dominio o ip (typea en el terminal "ifconfig").

eth0 Link encap:Ethernet HWaddr 00:15:17:7c:c9:22
inet addr:146.83.109.253 Bcast:146.83.109.255 Mask:255.255.255.192
inet6 addr: fe80::215:17ff:fe7c:c922/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:720108 errors:0 dropped:0 overruns:0 frame:0
TX packets:20752 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:77863142 (74.2 MiB) TX bytes:6787738 (6.4 MiB)
Memory:c7ee0000-c7f00000

Saldra algo como esto, fijate en la inet. addr. esa es la ip en el caso que no tengas un dominio asociado a ésta.

luego, para conectarte, simplemente haz lo siguiente:

tipeaen en consola:

#ssh [nombre ususario]@146.83.109.253

y listo el sistema remoto te preguntara por el password del ususario y te loguearas dentro de la consola del servidor remoto, para que realices las operaciones que estimes convenientes.

NOTA: Puedes utilicar SSH para la transferencia de archivos desde y hacia el servidor, por medio de un cliente FTP como "filezilla" solo tiene que especificarle el protocolo SFTP y el puerto 22 (puerto por defecto SSH) y listo, podrás bajar y subir arcivos desde tu servidor FTP(SSH). Todo esto con el simple paso explicado anteriormente.