Empezando con Liferay: una guía rápida de instalación
Dado que reciéntemente he tenido que instalar un Liferay limpito en un servidor con Apache, dejo aquí una guía con los pasos que seguí:
- ¿Qué es Liferay?
- Instalación básica
- Usando Liferay con MySQL
- Usando Liferay con Apache
- Usuario por defecto y un par de ajustes más
¿Qué es Liferay?
Liferay es un gestor de portales web con una gran funcionalidad integrada (gestión de comunidades y usuarios, CMS, wiki, blogs, y mucho más), y a su vez es un contenedor de portlets, lo que le permite ser extendido de manera bastante rápida y flexible (siguiendo la especificación JSR 286: Portlet Specification 2.0). Además, cuenta con una versión Community cuyo uso es gratuito y cuyo código es libre.
Instalación básica
Descargamos la última versión Community con el usuario que arrancará Liferay (en mi caso www-data) en el sitio que queramos (yo he escogido /opt/websites/liferay.deigote.com como directorio base de la instalación):
$ su - www-data $ cd /opt/websites/ $ wget 'http://sourceforge.net/projects/lportal/files/Liferay%20Portal/liferay-portal-tomcat-6.0-5.2.3.zip' $ unzip liferay-portal-tomcat-6.0-5.2.3.zip $ mv liferay-portal-5.2.3/ liferay.deigote.com
Si ahora arrancamos Liferay, podremos ver cómo nos informa en los log de que se usará una base de datos para testing (Hipersonic), y si navegamos por la web, podremos ver una serie de portlets a modo de demo:
$ /opt/websites/liferay.deigote.com/tomcat-6.0.18/bin/startup.sh $ tail -f logs/catalina.out & $ firefox http://localhost:8080
Este entorno de demo está bien para cacharrear un poco y ver cómo la gente de Liferay quiere vendernos sus capacidades para hacer un clon de Facebook 😀 (vienen instanciados portlets de chat, de muro, de añadir usuarios como amigo, de actividad reciente…), pero los datos no persisten, por lo que no podréis pasar de ahí. Además, Liferay viene por defecto con usa serie de portlets (en forma de plugins) preparados para hacer la demostración antes mencionada. Yo normalmente borro dichos portlets antes de continuar (de hecho, en mi caso borro todos los plugins excepto el de web-form-portlet, que es el único que encuentro útil):
$ rm -rf `ls /opt/websites/liferay.deigote.com/tomcat-6.0.18/webapps | grep -v ROOT | grep -v web-form-portlet`
Para la persistencia de los datos, tenemos que conectar Liferay con un viejo conocido 😀 .
Usando Liferay con MySQL
Para conectar Liferay con MySQL existen varias formas. De momento anotaré aquí la más sencilla (aunque para mi gusto un poco “fea”), puesto que no recuerdo exactamente cómo es la otra 😀 . Liferay incluye en su core un fichero de propiedades (portal.properties) que configuran prácticamente todos los componentes del portal, base de datos incluida. Ese fichero puede ser extendido mediante el fichero portal-ext.properties, que por defecto no existe. Así que escribimos en él la configuración de la base de datos:
$ echo "# Database connection jdbc.default.driverClassName=com.mysql.jdbc.Driver jdbc.default.url=jdbc:mysql://localhost/liferay_database?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false jdbc.default.username=mysql-user jdbc.default.password=mysql-password" > /opt/websites/liferay.deigote.com/tomcat-6.0.18/webapps/ROOT/WEB-INF/classes/portal-ext.properties
A continuación nos conectamos al servidor de mysql (en mi caso, localhost) y creamos la base de datos y un usuario con permisos para la misma:
$ mysql -h localhost -u root -p $ create database liferay_database $ grant all privileges on liferay_database.* to "mysql-user"@"localhost" identified by "mysql-password";
Si en este momento arrancamos Liferay de nuevo, deberíamos ver algunos mensajes haciendo mención a la base de datos utilizada (MySQL), y otros que indican que se están creando las tablas..
Usando Liferay con Apache
Para usar Apache como servidor web, creamos un host virtual y lo conectamos al servidor de aplicaciones de Liferay (en mi caso Tomcat) usando un módulo de proxy. Podemos usar el módulo proxy_http, que funcionaría con cualquier servidor de aplicaciones, o el módulo proxy_ajp, específico de Apache, y que presenta algunas ventajas sobre http, aunque yo no las recuerde 😀 . Dado que Tomcat soporta AJP, será el que usemos. Dado que yo uso Debian, necesito activar el módulo de proxy_ajp y crear un host virtual que use dicho módulo:
$ su - # a2enmod proxy_ajp # nano /etc/apache2/sites-available/liferay.deigote.com # a2ensite liferay.deigote.com # /etc/init.d/apache2 restart # exit
El contenido del fichero /etc/apache2/sites-available/liferay.deigote.com será el siguiente:
<VirtualHost *:80> ServerName liferay.deigote.com ServerAdmin webmaster@localhost ErrorLog /var/log/apache2/liferay.deigote.com_error.log LogLevel warn CustomLog /var/log/apache2/liferay.deigote.com_access.log combined # Proxy to Tomcat <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / ajp://liferay.deigote.com:8009/ ProxyPassReverse / ajp://liferay.deigote.com:8009/ </VirtualHost>
Antes de echar a andar con esta configuración, debemos añadir un par de líneas al fichero de propiedades de Liferay, ya que si no éste dará por hecho que estamos atacando al puerto 8080 (el puerto por defecto de Tomcat) y escribirá las URL’s con dicho puerto. Una vez realizado este paso, deberíamos poder acceder a Liferay a través del host virtual que hemos usado (siempre y cuando nuestro servidor DNS sepa resolver dicho host, claro):
$ /opt/websites/liferay.deigote.com/tomcat-6.0.18/bin/shutdown.sh $ echo " # Webserver configuration web.server.http.port=80 web.server.https.port=443" >> /opt/websites/liferay.deigote.com/tomcat-6.0.18/webapps/ROOT/WEB-INF/classes/portal-ext.properties $ /opt/websites/liferay.deigote.com/tomcat-6.0.18/bin/startup.sh $ firefox http://liferay.deigote.com
Usuario por defecto y un par de ajustes más
Una vez estemos navegando por Liferay, podremos acceder usando el usuario test@liferay.com con la contraseña test, que es administrador de la comunidad por defecto (guest) Yo recomiendo un par de ajustes más:
- Cambiar la dirección de correo (y por tanto el login) y la contraseña del usuario administrador. Esto lo podéis hacer en el Panel de control, en el apartado de Usuarios.
- Modificar el host virtual de la comunidad por defecto (o la que vayáis a usar) para que coincida con el que estéis usando para acceder a través de Apache. Esto se puede hacer en el panel de control, en el apartado Communities – Guest – Manage pages – Settings – Virtual host, usando el campo Public virtual host. Esto permitirá que las URL’s del tipo http://virtual_host/web/nombre_de_la_comunidad/pagina pasen a ser http://virtual_host/pagina, lo cual es más cómodo. Por ejemplo, la URL de la página por defecto (home) en la comunidad por defecto (guest) en mi caso pasaría de http://liferay.deigote.com/web/guest/home a http://liferay.deigote.com/home
Una vez finalizados estos pasos, ya podemos empezar a trabajar con Liferay en un entorno de producción (a falta, por supuesto, de configuraciones y optimizaciones de Tomcat, Apache y MySQL que no vienen al caso 😀 ).
Parecidos razonables
-
Idioma por defecto en Liferay
January 28, 2010
0 -
Subversion desde Apache usando virtual hosts y locations
July 17, 2009
11 -
Servicios web (4): Instalando PostgreSQL y JDBC
June 15, 2006
1 -
Ruby On Rails + Passenger + Apache + MySQL + SQLite en Debian 5
July 16, 2009
6 -
MySQL Puppet module
November 6, 2012
1
Hola Deigote.
He podido llegar aquí buscando algo de información sobre desarrollo para Liferay, más concretamente, desarrollo de plugins y modificación de características de los existentes.
No sé si tu te has podido iniciar ya en estas andanzas o piensas hacerlo, te agradecería pudieras faciliatrme información y/o documentación si fuera el caso.
Si bo fuera así, podríamos buscar y compartir algo de información/Documentación si llegara a interesarte.
Gracias.
Alberto de Francisco Martín
Buenas Alberto.
He trabajado con Liferay desarrollando en el entorno de extensión y también mediante plugins anteriormente, y tenía intención de escribir algo al respecto, en concreto sobre el desarrollo de portlets como plugins usando el framework Spring MVC, aunque todo dependerá del tiempo libre que tenga 🙂 .
Sin embargo, puedes encontrar documentación en el propio sitio web de Liferay, así como gran ayuda en sus foros y wiki. Espero que te sirva de ayuda.
Saludos.
Pingback: Idioma por defecto en Liferay at El blog de Deigote
Hola Deigote, bueno mi pregunta es sobre la instalación del sitio liferay en el servidor, he trabajado un portal que instale en mi maquina(Windows vista), lo quiero publicar en internet y asignarle un dominio, es por ello que le he subido al servidor que x compañía de dominios y hosting ha vendido, pero no sé como arrancarle desde ahí, que debería hacer para esto, en el caso de correrlo en local solo ejecuta el archivo startup.bat y este se encargaba de correr el Tomcat y levantarlo en el navegador, pero aquí no sé cómo debo hacer para esto, me podrías orientar en mi error, pido disculpas pues imagino debe de ser una pregunta demasiado sencilla para algunos, pero en mi caso soy muy joven en edad y en la programación y aunque estudio demasiado aún me falta mucho por recorrer.
Gracias
Toni:
Dependerá de qué sistema operativo use el servidor que has contratado. Liferay incluye scripts de arranque para Windows (los .bat que tú comentas) y para la familia Unix (terminando en .sh).
Si tu servidor es Windows (intuyo que no 🙂 ), el arranque no tendrá misterio para ti, ya que es equivalente a cómo lo haces en desarrollo. Si es un Linux (lo más habitual), debes hacer lo mismo que en Windows, pero usando el .sh en lugar del .bat.
Si te fijas en el segundo trozo de código del párrafo Instalación básica verás un ejemplo de cómo levantarlo.
Estimado Deigote, te agradezco por tu pronta respuesta, bueno el sistema operativo del servidor que he contratado es Linux, y si tengo idea de que debo usar las shells .sh, en este caso startup.sh para levantarlo, mi pregunta es más ingenua y te pido disculpa por mi ignorancia, pero lo que no se es como ejecutarla si esta en el servidor, te explico mejor, he tomado la carpeta con el sitio Liferay al servidor con un cliente ftp, ahora que la carpeta está arriba me voy a la ubicación del archivo startup.sh, pero como lo ejecuto?, cuando estaba en local hacia doble clic sobre el archivo, pero en el servidor? ..debo ingresar algún comando? ..de ser así donde ingreso este comando?, espero no ofender tu experiencia estimado, y agradezco cualquier orientación que ,e puedas brindar..
Toni:
Tienes, básicamente, dos opciones: o accedes a una consola de forma remota (típicamente, usando SSH), o instalas (o te instala el proveedor de hosting) algún panel de control de acceso web (tipo cPanel o similar).
La primera opción no tiene ningún misterio si te manejas bien usando una terminal y conoces las órdenes típicas de la familia Unix… pero quizá depende del proveedor de hosting el darte acceso mediante SSH. Sobre la segunda opción no te puedo ayudar demasiado, ya que yo no uso ni he usado ningún panel. Me gusta hacerlo todo a mano, ya que me siento más cómodo y creo que se aprende más, pero puede ser una opción bastante cruda si no se tiene algo de soltura 🙂 .
De todas formas, Liferay usa un servidor de aplicaciones estándar (por defecto Apache Tomcat), por lo que cualquier panel que permita controlar dicho servidor debería valerte… pero como te digo, sobre esto no tengo ninguna experiencia 🙁 .
Por más que intento e intetno, ya llevo 4 veces no consigo instalar liferay siguiendo este tutorial. Lo estoy haciendo sobre una instalación limpia de Debian Lenny.
Descargo Liferay http://sourceforge.net/projects/lportal/files/Liferay%20Portal/6.0.5/liferay-portal-tomcat-6.0.5.zip
Y algo pasa que no veo nada ni puedo ponerlo online para acceder desde mi casa a la supuesta instalación de Liferay.
Mira esto:
server:/opt/liferay/tomcat-6.0.26/bin# ./shutdown.sh
Using CATALINA_BASE: /opt/liferay/tomcat-6.0.26
Using CATALINA_HOME: /opt/liferay/tomcat-6.0.26
Using CATALINA_TMPDIR: /opt/liferay/tomcat-6.0.26/temp
Using JRE_HOME: /usr/lib/jvm/java-1.5.0-sun-1.5.0.22
Using CLASSPATH: /opt/liferay/tomcat-6.0.26/bin/bootstrap.jar
/opt/liferay/tomcat-6.0.26/bin/catalina.sh: line 378: /usr/lib/jvm/java-1.5.0-sun-1.5.0.22/bin/java: No existe el fichero o el directorio
Ayúdame por favor!
Buenas.
El error parece claro: no encuentra el ejecutable de Java (de ahí ese mensaje que dice que no existe el fichero /usr/…/java 😀 ). Échale un ojo a tu variable de entorno JAVA_HOME, a ver a dónde apunta, y corrígela si es necesario…
Que tal Deigote! Sabes como puedo hacer para instalar el Liferay con el Oracle? y el Apache?
@Giancarlo, de Oracle no sé ni quiero saber :-D. De Apache, en la guía tienes unos pasos válidos para cualquier distribución Linux basada en Debian (y extrapolable a cualquier otra con algo de trabajo).
¡Buenas!
Buscando en la web blogs que en algún momento han hablado sobre Liferay hemos encontrado este blog.
Me llamo Juan Fernández y soy ingeniero core de Liferay en España.
De cara a estimular la actividad de la comunidad open source de usuarios en España hemos creado el #LSUG (Liferay Spain User Group – http://liferay.com/community/user-groups/spain) y estamos organizando quedadas y actividades por España.
Tal vez estés interesado en saber que la siguiente quedada tendrá lugar en Madrid el próximo día 27 de Octubre (más info aquí: http://www.liferay.com/es/community/forums/-/message_boards/message/11088444), en caso de que quieras pasarte y conocer a miembros de la comunidad de Liferay, ingenieros del producto y usuarios de toda la península. ¿Te gustaría aprender, preguntar, compartir experiencias, contar cómo usas liferay o cómo te gustaría que fuera en versiones futuras? ¡Es tu oportunidad! 🙂
Quedo a tu servicio para responder cualquier duda que tengas.
Un saludo,
Juan Fernández
Buenas Juan.
Te conozco “de vista” (de vista virtual, en este caso :-D) de mi época currando en Germinus (cuando ya era parte de Gesfor), seguro que Jorge Ferrer se acuerda de mi.
Ahora mismo me encuentro un poco alejado del desarrollo sobre Liferay (últimamente estoy más metido en desarrollos a medida usando Grails), así que no tiene mucho sentido que me pase por allí, pero me lo apunto por si alguna vez vuelvo. Gracias por el apunte y un saludo :-).
Hola soy estudiante de sistemas y estoy realizando un proyecto con Liferay. Tengo un servidor, que tiene instalado 4 maquinas virtuales: Tomcat(Liferay), Postgres, LDAP y Glassfish(Servicios web creados por mis compañeros). Hicimos una instalacion limpia de Liferay 6.0.6, hasta aqui todo va bien. En nuestra red local funciona el portal de maravilla.
Nuestro problema viene cuando queremos navegar utilizando nuestra ip publica, los enlaces no funcionan correctamente, la autenticacion falla y otros problemas mas. Tenemos habilitado en el tomcat el puerto 80. Hemos realizado cambios en el porta-ext.properties configurando las siguientes propiedades
redirect.url.security=domain
jajajaja mucha explicacion no? Que podemos hacer para configurar bien el acceso con la ip publica?
Muchas gracias!!
Necesito publicar mi portal creado con Liferay. Cuando digo publicar me refiero a que se pueda ver por todo el mundo en la nube.
Ahora lo tengo creado con un servidor local (Tomcat).
Y yo para que quiero crear un portal en mi PC si no lo puede ver nadie, solo yo, porque lo tengo en local.
Si alguien me puede contestar por favor?
gracias.
Sobre la pregunta de como subir mi portal Liferay a un servidor público, no he recibido ninguna respuesta y es importante. No tengo ni idea de como hacerlo.
Muchas gracias
Hola necesito una ayuda por favor, estoy trabjando Liferay con postgres SQL 8.4, resulta ser q en el archivo portal – ext.properties tengo declarado lo siguiente
jdbc.default.driveClassName=org.postgresql.Driver
jdbc.default.url=jdbc:postgresql://localhost:5433/lportal
jdbc.default.username=postgres
jdbc.default.password=postgres
pero cuando le doy finalizar a la instalacion me produce el siguiente error:
Database connection could not be established. Please check your connection settings.
Alguien me puede ayudar por favor