Thursday 12 June 2008

Instalar Java y Tomcat en GNU/Linux CentOS junto con Plesk

tomcat

Hoy voy a contaros como levantar un tomcat 5 sobre la máquina virtual Java de Sun 6 update 6 (o 1.6), partiendo de una instalación limpia de CentOS 5 y Plesk 8.4.0, que es como os podriais encontrar un servidor dedicado justo después de su contratación. Si no teneis plesk instalado de igual manera podeis seguir los pasos hasta que comienza la configuración de Plesk para tener un sistema con Java y Tomcat totalmente funcional.




Comenzaremos por instalar Java
, me moveré a /opt y descargaré todos los ficheros allí,



[root@maquina opt]# cd /opt


Un requisito antes de instalar la JDK es instalar jpackage, si usas CentOS 5 no tienes más que escribir:



[root@maquina opt]# yum install jpackage-utils


Si usa CentOS 4, tendrás que decargar jpackage-utils manualmente en:


http://mirrors.dotsrc.org/jpackage/1.7/generic/free/RPMS/


e instalarlo con:


[root@maquina opt]# wget http://mirrors.dotsrc.org/jpackage/1.7/generic/free/RPMS/jpackage-utils-1.7.5-1jpp.noarch.rpm


[root@maquina opt]# rpm -Uvh jpackage-utils-1.7.5-1jpp.noarch.rpm


Ahora vamos a instalar la JDK de Sun en su versión 6 Update 6.


Nos dirigimos a http://java.sun.com/javase/downloads/index.jsp y descargamos el auto-extraible con RPM (RPM self-extracting file), eligiendo la arquitectura (IA64 para Titanium, i586 para los demás).


El nombre del fichero es: jdk-6u6-linux-i586.rpm.bin


Escribimos:


[root@maquina opt]# chmod +x jdk-6u6-linux-i586.rpm.bin


[root@maquina opt]# ./jdk-6u6-linux-i586.rpm.bin


Acepte el acuerdo de licencia, y procedemos a descargar el fichero http://mirrors.dotsrc.org/jpackage/1.7/generic/non-free/RPMS/java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm



[root@maquina opt] wget http://mirrors.dotsrc.org/jpackage/1.7/generic/non-free/RPMS/
java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm


Instalamos ambos RPMs:


[root@maquina opt]# rpm -Uvh java-1.6.0-sun.compat-1.6.0.06-1jpp.i586.rpm


[root@maquina opt]# rpm -Uvh ./jdk-6u6-linux-i586.rpm


Nota: -U denota upgrade, y cualquier otra versión anterior del paquete se desistala, las demás opciones son de verbose.


Sólo queda configurar el sistema alternatives para que use la JDK:



[root@maquina opt]# alternatives --config java

There are 2 programs which provide 'java'.

Selection Command
-----------------------------------------------
+ 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
* 2 /usr/lib/jvm/jre-1.6.0-sun/bin/java

Enter to keep the current selection[+], or type selection number: 2


Eligimos 2, para usar la máquina virtual de Sun.


Ahora tecleamos "java -version" y deberíamos ver:




[root@maquina opt]# java -version
java version "1.6.0_06"
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)


Ya tenemos Java instalado en el servidor!


Una vez superado este paso, procedemos a instalar tomcat5 de manera cómoda




[root@maquina opt]# yum install tomcat5 tomcat5-webapps tomcat5-admin-webapps


Este comando descargará e instalará los paquetes necesarios. Podemos ver los ficheros que ha instalado el sistema para cada paquete con el comando



[root@maquina ~]# rpm -ql tomcat5
/etc/logrotate.d/tomcat5
/etc/rc.d/init.d/tomcat5
/etc/sysconfig/tomcat5
/etc/tomcat5
/etc/tomcat5/Catalina
/etc/tomcat5/Catalina/localhost
/etc/tomcat5/catalina.policy
/etc/tomcat5/catalina.properties
/etc/tomcat5/context.xml


..


similar al dpkg -L de Debian.



Iniciamos tomcat para comprobar que arranca correctamente

[root@maquina ~]# service tomcat5 start


Y bien, accediendo a http://IP:8080 del servidor o bien http://localhost:8080 si estamos en la máquina local deberemos ver la página de bienvenida de tomcat.


Si tenemos problemas podemos comprobar el fichero de log, por defecto situado en /var/log/tomcat5/catalina.out


Ya tenemos listo tomcat 5 sobre Sun JDK 6


Si no tienes un panel Plesk la siguiente sección no te interesa.


Componente tomcat en Plesk


El paquete Plesk es una solución comercial de hosting web automatizado. Originalmente nació en la compañía Plesk Inc, hasta que en 2003 pasó a ser un producto de SWSoft debido a su compra. Hoy día es distribuido por Parallels Inc. (sí los de Parallels Desktop for Mac), desde que Parallels y SWSoft se unieron en Enero de 2008. Trabajaremos con la última versión 8.4.0 que lanzaron el 7 de Mayo de 2008.


Nuestra licencia de Plesk tiene que soportar el componente para tomcat, quizá ya viene instalado y nos ahorramos estos pasos, de todas formas explicamos como instalarlo en caso de que esto no ocurriera, incluso de activar el componente en la licencia.


Necesitamos dos paquetes, los podemos bajar de siguiente url: http://autoinstall.plesk.com/PSA_8.4.0/dist-rpm-CentOS-5-i386/opt/java/


Para otras versiones de Plesk anteriores, indicar el directorio adecuado.


Descargamos los dos RPMs, por ejemplo con wget, tanto mod_jk como psa-tomcat-configurator, el primero es requisito del segundo por lo tanto instalamos ambos en orden.




[root@maquina opt]# wget http://autoinstall.plesk.com/PSA_8.4.0/dist-rpm-CentOS-5-i386/opt/java/
mod_jk-ap20-1.2.15-42psa.cos5.build84080425.19.i586.rpm
[root@maquina opt]# wget http://autoinstall.plesk.com/PSA_8.4.0/dist-rpm-CentOS-5-i386/opt/java/
psa-tomcat-configurator-8.4.0-cos5.build84080425.19.noarch.rpm
[root@maquina opt]# rpm -Uvh mod_jk-ap20-1.2.15-42psa.cos5.build84080425.19.i586.rpm
Preparing... ########################################### [100%]
1:mod_jk-ap20 ########################################### [100%]
[root@maquina opt]# rpm -aq|grep mod_jk
mod_jk-ap20-1.2.15-42psa.cos5.build84080425.19
[root@maquina opt]# rpm -Uvh psa-tomcat-configurator-8.4.0-cos5.build84080425.19.noarch.rpm
Preparing... ########################################### [100%]
1:psa-tomcat-configurator########################################### [100%]
Trying to start MySQL server... Trying to establish test connection... connected
done
Checking for the system groups and users necessary for Tomcat...
Checking for the group 'tomcat'...
Group 'tomcat' already exists



Checking for the user 'tomcat'...
User 'tomcat' already exists



Trying to comment CATALINA_BASE variable in the /etc/sysconfig/tomcat5... done
Trying to find JAVA_HOME variable in the /usr/share/tomcat5/conf/tomcat5.conf...
JAVA_HOME variable is already in the /usr/share/tomcat5/conf/tomcat5.conf and has correct value (/usr/lib/jvm/java)
Trying to replace TOMCAT_USER variable in the /usr/share/tomcat5/conf/tomcat5.conf... done
Making chown and chmod under JDK stuff
Trying to set up Tomcat permissions... done


Veremos toda esta salida configurando los componentes, entre estas líneas destaca:


JAVA_HOME variable is already in the /usr/share/tomcat5/conf/tomcat5.conf and has correct value (/usr/lib/jvm/java)


Como se puede ver, el componente coge la configuración de tomcat5, la JVM está en /usr/lib/jvm, veamos:



[root@maquina opt]# ls -l /usr/lib/jvm/java
lrwxrwxrwx 1 root root 26 Jun 7 19:14 /usr/lib/jvm/java -> /etc/alternatives/java_sdk
[root@maquina opt]# ls -l /etc/alternatives/java_sdk
lrwxrwxrwx 1 root root 27 Jun 7 19:17 /etc/alternatives/java_sdk -> /usr/lib/jvm/java-1.6.0-sun


Correcto, es la Sun JDK 1.6 que acabamos de instalar.


Reiniciamos Plesk:


[root@maquina opt]# service psa restart


Ahora podeis cambiar la configuración de tomcat para adaptarla a vuestras necesidades, como consejo de optimización podeis linkar el tomcat con apache, para que sea este último el que sirva contenido en Internet.


Si accedemos a Plesk, en Servidor -> Sistema -> Inf. componentes, podremos ver:


psa-tomcat-configurator8.4.0-cos5.build84080425.19


tomcat5.5.23-0jpp.3.0.3.el5_1


que antes no teníamos.


Si el componente está soportado por nuestra licencia, podremos ir a Servidor -> Administración de servicios, y veremos a tomcat como un servicio más, el cual podemos activar/desactivar.


Y desde cada dominio, veremos un nuevo icono Servicios -> Tomcat que permite a los clientes subir aplicaciones Java al servidor en formato .war y publicarlas en Internet.


Si nuestra licencia no soporta este componente, veremos la función tomcat desactivada y sin posibilidad de activarla con un mensaje similar a "Esta función no está soportada por la licencia", por lo que tendremos que pagar por ella, normalmente las empresas de dedicados se hacen cargo, el coste es unos 5 €/mes, también podemos comprarla nosotros mismos y activarla desde Servidor -> Administración de licencias.


Una vez comprada la licencia, ya sea mediante un tercero o nosotros mismos, iremos a Servidor -> Administración de licencias -> Obtener licencias compradas y se nos actualizará los datos para nuestra llave de licencia, con esto se activara la función tomcat en Plesk.


Otra opción es configurar tomcat a mano y que los clientes suban las aplicaciones Java por ftp o SSH.


Con esto ya dejamos listo nuestro sistema Java/Tomcat en CentOS y Plesk.

14 comments:

  1. Desconfiguración de terminal y pantalla verde con Centos 5.0
    Amigos, buenos días. Soy en nuevo en Linux, estaba instalando el JRE de Java jre1.6.0_06
    para poder instalar el Eclipse y cree el archivo JAVA.sh de acuerdo a las indicaciones del manual que me dieron.
    Cree el archivo java.sh con lo siguiente:

    export PATH=/usr/java/jre1.6.0_06/bin: $PATH JAVA_HOME="/usr/java/jre1.6.0_06/"
    export JAVA_HOME

    y me sale el siguiente mensaje en la terminal

    bash: export:
    `/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin': not a valid identifier [root@localhost ~]#

    Cuando ingreso un nuevo comando en la terminal ya no es reconocido dicho comando. Al reinicializar la PC me sale la terminal con una pantalla verde y un reloj y ya no se ve el escritorio. Practicamente no puedo hacer nada.


    Por favor si me dan una sugerencia para solucionar este inconveniente.
    Gracias.

    ReplyDelete
  2. Hola,

    No dejes un espacio entre cada directorio de la variable PATH, es decir sería:

    export PATH=/usr/java/jre1.6.0_06/bin:$PATH


    Saludos

    ReplyDelete
  3. Muy Buen articulo, la verdad es que me ha sido muy útil poder cambiar de jdk para mi Vps. tal vez se echa en falta es que no instales el repositorio de jpackage, aquí explican como instalarlo http://www.jpackage.org/yum.php, trae un montón de paquetes extras para java como pueda ser jboss o el javamail de sun.

    Puedes echar un vistazo en: http://www.jpackage.org/browser/browse.php

    ReplyDelete
  4. Tengo una pregunta, he instalado todo, me corre perfectamente. Tambien la DB en el servidor pero me da error siempre al conectar, si extendieras como conectar entre ellos sería genial, muchas gracias

    ReplyDelete
  5. Hola! saludos! una pregunta... este mismo procedimiento es valido pero con Red Hat? Tengo un server dedicado con Plesk 8.4.0 pero está instalado sobre Red Hat

    ReplyDelete
  6. buenas,

    tengo instalado centos 5.2 y el comando service y el comando alternatives no funcionan, que me recomienda pra poder seguir

    gracias

    ReplyDelete
  7. Buenas, he seguido los pasos y todo ha ido bien, pero en el setup del cms, en el segundo paso, se pierde la conexion... ¿alguna sugerencia?

    ReplyDelete
  8. como hago para instalr el centos 5.2?? dame una mano man

    ReplyDelete
  9. ¿Como se puede cambiar el puerto 8080 por el 80 si se tiene instalado el plesk?

    ReplyDelete
  10. Hola, solo una observacion y al mismo tiempo pregunta, he estado intentando instalar openbravo y ahi mencionan que el paquete a instalar es jdk-1_5_0_17-linux-i586.bin. Existe alguna diferencia entre un paquete y otro ?- trabaja diferente ? - Salduos y Gracias.

    ReplyDelete
  11. Hola, tengo un problema a la hora de instalar java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm:

    rpm -Uvh java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm
    warning: java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm: Header V3 DSA signature: NOKEY, key ID c431416d
    error: Failed dependencies:
    jdk = 2000:1.6.0_06-fcs is needed by java-1.6.0-sun-compat-1.6.0.06-1jpp.i586

    Como puedo instalar este paquete que falta ?

    ReplyDelete
  12. Yo tbm tengo ese problema porfavor mande ayuda

    ReplyDelete
  13. rpm -Uvh java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm
    warning: java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm: Header V3 DSA signature: NOKEY, key ID c431416d
    error: Failed dependencies:
    jdk = 2000:1.6.0_06-fcs is needed by java-1.6.0-sun-compat-1.6.0.06-1jpp.i586

    lo mismo :(

    ReplyDelete
  14. El java-1.6.0-sun-compat-1.6.0.06-1jpp.i586 funciona es con jdk-1_6_0_6-linux-i586.bin( http://java.sun.com/products/archive/j2se/6u6/index.html), si no es este no va a funcionar

    ReplyDelete