lunes, 21 de noviembre de 2011

OpenCms sobre TomCat6 en Debian squeeze


    En esta practica vamos a instalar OpenCms en tomcat. Lo instalare en una maquina virtual, a la cual la he llamado plancton. En la maquina cliente he modificado el archivo /etc/hosts y he añadido la linea “10.0.0.6 plancton”, siendo la 10.0.0.6 la dirección ip de la maquina donde instalaremos OpenCms. Para instalar OpenCms necesitamos instalar los siguientes programas:
  • Java
  • TomCat
  • MySQL
    También instalaremos apache con los módulos necesarios para que no tengamos que poner ningun puerto en la URL.

Java.
    Para instalar Tomcat primero tenemos que instalar java. Estos paquetes no se encuentra en los repositorios normales, tenemos que añadirles los non-free . Los paquetes los instalamos de la siguiente manera:
# aptitude install sun-java6-bin sun-java6-jre sun-java6-jdk sun-java6-plugin sun-java6-fonts libcommons-el-java

    En los pasos de la instalación nos pedirá que aceptemos la licencia. Si tenemos otro java instalado, tenemos que hacer que se utilice el de java por defecto:
# update-alternatives --set java /usr/lib/jvm/java-6-sun/jre/bin/java

MySQL.
    También necesitaremos de una base de datos, así que instalaremos MySQL:
# aptitude install mysql-server-5.1 mysql-client-5.1 libmysql-java
    Creamos el archivo mysql.sql, con los siguientes datos.
# cat mysql.sql
create database opencms default character set utf8 collate utf8_bin;
grant all on opencms.* to 'opencms'@'localhost' identified by 'opencms' with grant option;
grant all on opencms.* to 'opencms'@'localhost.localdomain' identified by 'opencms' with grant option;
    Después lo ejecutamos en mysql.
# mysql -u root -p < mysql.sql

Tomcat6.
    Y por supuesto también nos ara falta tomcat:
# aptitude install tomcat6 tomcat6-admin tomcat6-docs tomcat6-examples tomcat6-user

    Para poder administrar tomcat desde el administrado web tendremos que modificar el archivo /etc/tomcat6/tomcat-user.xml para que nos quede la siguiente estructura.
# cat /etc/tomcat6/tomcat-user.xml
<tomcat-users>
<user username="usuario" password="contraseña" roles="admin,manager"/>
</tomcat-users>

    Para que el servidor web Apache puede comunicarse bien con Tomcat, tendremos que configurar el conector AJP. Para esto, descomentaremos del archivo /etc/tomcat6/server.xml. Esto se hace en la siguiente linea:
# cat /etc/tomcat6/server.xml

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    Por otro lado indicar que libmysql-java es el controlador JDBC de MySQL y libcommons-el-java son componentes reusables opensource de java. Esta instalación instala los jar JDBC de mysql y commons en java pero para que funcione correctamente con tomcat debemos incluirlo en el classpath de tomcat. Esto lo hacemos añadiendo un link simbólico al jar de mysql y commons en java en el directorio /usr/share/tomcat6/lib.
# cd /usr/share/tomcat6/lib
# ln -s ../../java/mysql.jar mysql.jar
# ln -s ../../java/commons-el.jar commons-el.jar

    Por ultimo reiniciamos Tomcat:
# service tomcat6 restart

    Si todo a salido bien, podremos acceder en http://localhost:8080/manager/html con el usuario y contraseñas que definimos.

Apache.
    Instalar apache es algo tan fácil como:
# aptitude install apache2 apache2-utils

    Para conectar el servidor web con el servidor de aplicaciones (contenedor de servlets y JSP) se usa el protocolo AJP. Para configurar esto se pueden usar, o el módulo de apache mod_jk o el módulo mod_proxy. La recomendación es usar el módulo mod_proxy ya que es más moderno y es el que configuraremos. También se puede usar para balanceo de carga, clusters… Por defecto, ya viene instalado con apache2.
En la instalación de Tomcat ya configuramos el conector AJP para que funcionara correctamente. Ahora nos ocupamos de la parte de configuración de apache. Para configurar el conector editamos el fichero de configuración de mod proxy y lo dejamos así:
# nano /etc/apache2/mods-available/proxy.conf
<IfModule mod_proxy.c>
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
ProxyVia On
ProxyPass /opencms ajp://localhost:8009/opencms
ProxyPassReverse /opencms ajp://localhost:8009/opencms
<Location /opencms >
Order allow,deny
Allow from all
</Location>
<Location /share>
Order allow,deny
Allow from all
</Location>
</IfModule>


    Para terminar con apache activamos los módulos proxy y reiniciamos apache.
# a2enmod proxy_balancer proxy_ajp proxy
# service apache2 restart

Instalación OpenCms.
    Nos descargamos OpenCms:
# wget http://www.opencms.org/downloads/opencms/opencms_8.0.3.zip
    Descomprimimos:
# unzip opencms_8.0.3.zip
    Movemos el .war:
# cp opencms.war /var/lib/tomcat6/webapps/

    Para empezar la instalación de OpenCms entramos en la siguiente dirección:
http://plancton:8080/opencms/setup/

    Si es desde local cambiamos plancton por localhost. En mi caso lo estoy haciendo desde un ordenador cliente.

    En la primera pagina (http://plancton:8080/opencms/opencms/setup/, tendremos que aceptar la licencia de OpenCms.


    En el siguiente paso, nos indica si tenemos todos los componentes necesarios instalados.



    La siguiente pantalla importante es en la que configuramos la base de datos. Pondremos los datos que que pusimos cuando configuramos la base de datos.


    Nos preguntara si queremos borrar alguna base de datos existente. Tras aceptar nos crea la base de datos y nos lo verifica.


    En las próximas dos pantallas le damos a continuar, y se pondrá a crear el cms.


    Yo mientras se instalaba merendé, así que tranquilidad. Tras el tiempo, se termina de instalar.

    Tras la espera, ya hemos terminado.

    Para administrar OpenCms nos metemos en:
http://plancton:8080/opencms/opencms/system/login/index.html.
    El usuario y contraseña que trae por defecto es: Admin/admin.

      Este seria el menú de administración.
 
    Para entrar en la pagina principal, entramos en la pagina:
http://plancton:8080/opencms/opencms/index.html.
También podemos entrar por la URL: http://plancton/opencms/opencms/index.html




1 comentario:

  1. Tengo el servidor tomcat detras de ipcop que usa los puertos 8080 y 8443 para proxy y administración web de lan respectivamente.....

    ResponderEliminar