Contexto
En ambientes en de producción es una buena práctica hacer que liferay guarde sus datos en una base con mejores prestaciones que hypersonic. La misma no es adecuado por temas de seguridad, perdida de datos, etc. Su finalidad es tener una base que nos sirva para cuando instalamos tener algo disponiblese recomienda utilizar una Base de Datos para almacenar información de configuración de componentes de O3, tales como el Enterprise Portal, la configuración del Servidor y los usuarios.
La Base de Datos Hypersonic que va preconfigurada con O3 en su distribución, tiene por finalidad permitir una rápida puesta en funcionamiento de la instalación, tanto para aprendizaje, demostración y hasta desarrollo, pero para entornos de producción se recomienda la configuración de otra base de datos.
Este HowTo describe como se hace el cambio de Base de Datos del Enterprise Portal (Liferay).
Podemos distinguir 2 situaciones:
- Ya tenemos armado un sitio usando hypersonic y queremos migra migrar a otra base.
- No tenemos nada armado y queremos desde el vamos usar otra base
...
Liferay funciona con varias bases de datos, nostros la hemos probado con exito en:*
- MS-SQL
...
...
- Postgres
- Oracle
pero hay otras posibildades de Bases, en http://downloads.sourceforge.net/lportal/liferay-portal-sql-5.1.2.zip se puede ver los tipos soportado de acuerdo a los scripts de creación de bases.
...
A los efectos de este HowTo supondremos que usaremos MySQL, que creamos una base que se llamará liferay y un usario liferay con una password liferaykey
Por temas de licenciamiento el driver de mysql hay que bajarlo del sitio de mysql. Luego hay que colocar el driver (.jar) en <o3>/classes/jdbc y en
<o3>/jboss/server/default/lib
El usuario liferay tiene solo derechos de
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE sobre la base liferay
...
Si ya tenemos armado una/s comunidad/es debemos de exportarlas para luego importarlas en el eportal con la nueva base de datos
- Loguarse Loguearse como el administrador.
- Ir a la comunidad Mi Comuinidad a las páginas privadas.
- En el portlet camunities cliquear en All Comuinties.
- Cliquear el botón acciones de la comunidad que exportaremos y elegir manejar página.
- Cliquear el botón Privado y luego exportar/importar
- Cliquear el botón Exportar si tocar nada de las posibles configuraciones
- Guardar el archivo generadoPanel de Control.
- En la sección Portal ir a Comunidades.
- En el botón Acciones elegir Administrar Páginas.
- Eligiendo Páginas Públicas o Privadas, según el caso, ir a Exportar/Importar, guardar el archivo .lar clieando el botón Exportar.
- Repetir el proceso para cada comunidad.
- Bajar el Jboss al terminar de exportar la/s comunidad/es.
...
Es necesario indicarle a liferay que usar para conectarse, para ello copiamos del directorio de ejemplos el datasource correspondiente a mysql.
Code Block |
---|
cp <o3>/jboss/docs/examples/jca/mysql-ds.xml <o3>/jboss/server/default/deploy/liferay-mysql-ds.xml
|
...
Veremos algo como esto:
Code Block |
---|
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://mysql-hostname:3306/jbossdb</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>x</user-name>
<password>y</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<!-- should only be used on drivers after 3.22.1 with "ping" support
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
-->
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml -->
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
|
cambiamos
Code Block |
---|
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://mysql-hostname:3306/jbossdb</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>x</user-name>
<password>y</password>
|
por
Code Block |
---|
<jndi-name>jdbc/LiferayPool</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/liferay</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>liferay</user-name>
<password>liferaykey</password>
|
Warning | ||
---|---|---|
| ||
Es crítico verificar que quede bien definido el dato jndi-name de la definición del datasource con el valor jdbc/LiferayPool , ya que es lo que identifica la base que va a usar el eportal. Si este nombre queda mal, el Eportal queda funcionando temporalmente con una base hypersonic embebida. |
Tip | ||
---|---|---|
| ||
Recordar que usamos una base que se llama liferay, un usuario liferay |
...
Una vez iniciado el Jboss, Liferay se encargara de crear las tablas en la base y precargarle algunos datos.
5- Abrir el eportal
Colocamos en el navegador web http://localhost:8080/eportal y veremos algo como esto
Debemos loguernos loguearnos con el usuaria usuario test@liferay.com (sugerido) y la password test
veremos la siguiente pantalla
6- Recomponiendo el eportal
Warning | ||
---|---|---|
| ||
No saltearse lo pasas pasos que acotinuación a continuación se detallan, o se corre el riesgo de no poder volver a entrar al eportal |
Desactivando la comunidad guest
Lo primero que debimos notar es que no pasmos por la pantalla de logueo de O3, para volver a tener esa pantalla debemos des habilitar la comunidad guest.
Vamos a la páginas privadas de mi comunidad
Luego elegimos la parte de comunidades y cliquemos en todas la comunidades, en el botón de acciones elegimos editar.
En la pantalla siguiente deschequeamos donde dice activa y salvamos.
Volver a página entera
Agregando el usuario admin
Como no tenemos el portlet Enterprise Admin que nos permite cargar usuarios lo agregamos.
Una vez cargado el portlet vamos a el y apretamos el botón add user, ponemos admin en screen name, Administrador en el nombre y apellido
Salvamos
...
Agregando el usuario admin
Vamos a al menú de opciones y elegimos Control panel (Panel de Control)
Una vez en el Panel de control vamos a buscar a la izquierda la sección Portal
Elegimos Users, luego Add (botón verde arriba al medio) y completamos como en la foto y apretamos salvar (botón a la derecha)
Notar que deben coincidir el screen name con el nombre de logueo en O3, en este caso admin. Pero para otros usuarios se debe mantener que los nombres sean iguales.
Luego ir a roles como muestra la imagen
Apretamos el botón con una cruz verde (Selec) y se despliega una pantalla en la que podemos selecionar el rol administrator
Luego volvemos a salvar (botón derecho abajos)
Si queremos le podemos sacar el rol powerUser (no olvidar salvar luego de sacarlo!)
Con esto ya tenemos a admin como administrador del eportal.
Sacando el usuario test
Vamos al portlet Enterprise Admis a usuarios y buscamos a test. Apretamos el botón acciones y elegimos desactivar.
Volvemos a la búsqueda de usuarios pero en el link avanzada elegimos no activos
En el ususario test en acciones elegimos borrar
Agregando portlet de login en la comunidad guest
Arriba a la derecha debe haber un link que dice back to guest(volver a guest), lo cliqueamos y estaremos en la pantalla de inicio.
Acá debemos sacar los 2 portlets y agregar uno nuevo, para ello vamos de nuevo al menú y elegimos agregar aplicación (add application)
elegimos el portlet que esta en indefinidos (Undefined) Eportal Portlet y lo agregamos.
Desactivar el usuario test
Nos deslogueamos y entramos con el usuario admin.
Una vez logueados, vamos al menú->panel de control->usuarios
Apretamos el botón de acciones correspondiente al usario test y lo desactivamos.
Creando la comunidad
En el portlet Comunidades elegimos crear nueva comunidad
Completamos el formulario y salvamos
En el botón de acciones elegimos agregar miembros, pulsamos en disponibles y luego en buscar. Selecionamos a admin y apretamos actualizar asociacionesmenú de la izquierda buscamos comunidades
Luego en el botón verde con una cruz le decimos agregar, completamos el formulario.
Agregando(importando) a la comunidad lo exportado al principio.
En el portlet la lista de Comunidades elegimos comunidades disponibles, en acciones manejar la creada y en el botón de acciones->manejar páginas.
Luego elegimos privadas y exportar/importar. luego , a continuación importar,
seleccionamos el archivo y no tocamos nada cambiamos ninguna de las opciones.
Apretamos ver paginas y listo!!
Usuarios
Los usuarios que tenemos definidos en o3 podrán entrar al eportal luego que entran quedan automáticamente en la base de liferay, solo resta agregarlos a la comunidad