Liferay es un portal de gestión de contenidos de código abierto escrito en Java. Se creó en 2000 en principio como solución para las organizaciones sin ánimo de lucro.

Características más destacadas

  • Corre en la mayoría de los servidores de aplicaciones y contenedores de servlets, base de datos y sistemas operativos, con más de 700 combinaciones posibles.
  • Compatible con JSR-286
  • Disponibilidad «fuera de la caja» Out-of-the-box de más de 60 Portlets pre-construidos.
  • Construido dentro del Sistema de manejo de contenido (CMS) y Suite colaborativa.
  • Páginas personalizadas para todos los usuarios.
  • Benchmarked como uno de los portales seguros usando la suite de LogicLibrary, Logiscan.

Descargamos los paquete necesarios para la instalacion del cms

Liferay Source for 6.2 GA6
Dependencies for 6.2 GA6

Instalar y configurar paquetes necesarios para su utilizacion

apt install openjdk-7-jre openjdk-7-jre-headless apache2 mysql-server tomcat7

Configuramos la base de datos para liferay en «MySql»

mysql> CREATE DATABASE liferay;
Query OK, 1 row affected (0.03 sec)

mysql> create user 'liferay'@'%' IDENTIFIED BY 'usuario';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON * . * TO 'liferay'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

En el directorio «home» de tomcat /usr/share/tomcat7/lib creamos la carpeta «ext» y copiamos todas las dependencias que descargaremos de la pagina oficial.

root@liferay:/usr/share/tomcat7/lib# unzip /home/vagrant/liferay-portal-dependencies-6.2-ce-ga5-20151118111117117.zip
root@liferay:/usr/share/tomcat7/lib/ext# cp liferay-portal-dependencies-6.2-ce-ga6/* ./

Dependencias JARS

Liferay Portal depende de varios JAR archivos encontrados en el Archivo Liferay Dependencias. Además de estos, usted necesita el controlador adecuado para su base de datos y copiaremos todos los ficheros a la carpeta creada anteriormente.

Descargar el «support-tomcat.jar» archivo desde:

root@liferay:/usr/share/tomcat7/lib/ext# wget http://repo1.maven.org/maven2/com/liferay/portal/support-tomcat/6.2.1/support-tomcat-6.2.1.jar

Acto seguido debemos descargar alguna dependencias mas que se encuentran fuera del paquete:

jta.jar

root@liferay:/usr/share/tomcat7/lib/ext# wget http://download.oracle.com/otn-pub/jcp/7286-jta-1.0.1-spec-oth-JSpec/jta-spec1_0_1.zip
root@liferay:/usr/share/tomcat7/lib/ext# unzip jta-spec1_0_1.zip root@liferay:/usr/share/tomcat7/lib/ext# cp jta-spec1_0_1/jta-spec1_0_1.jar ./

mail.jar

root@liferay:/usr/share/tomcat7/lib/ext# wget http://download.oracle.com/otn-pub/java/javamail/1.4.5/javamail1_4_5.zip
root@liferay:/usr/share/tomcat7/lib/ext# unzip javamail1_4_5.zip
root@liferay:/usr/share/tomcat7/lib/ext# cp javamail1_4_5/mail.jar ./

persistence.jar

root@liferay:/usr/share/tomcat7/lib/ext# wget http://download.java.net/javaee5/v2_branch/promoted/shared/glassfish-persistence/glassfish-persistence-installer-v2-b58g.jar
root@liferay:/usr/share/tomcat7/lib/ext# mv glassfish-persistence-installer-v2-b58g.jar persistence.jar

activation.jar

root@liferay:/usr/share/tomcat7/lib/ext# wget http://download.oracle.com/otn-pub/java/jaf/1.1.1/jaf-1_1_1.zip
root@liferay:/usr/share/tomcat7/lib/ext# unzip jaf-1_1_1.zip
root@liferay:/usr/share/tomcat7/lib/ext# cp jaf-1_1_1/activation.jar ./

mysql-connector.jar

root@liferay:/usr/share/tomcat7/lib/ext# wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.40.zip
root@liferay:/usr/share/tomcat7/lib/ext# unzip mysql-connector-java-5.1.40
root@liferay:/usr/share/tomcat7/lib/ext# cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar ./

ccpp.jar

root@liferay:/usr/share/tomcat7/lib/ext# wget http://central.maven.org/maven2/javax/ccpp/ccpp/1.0/ccpp-1.0.jar
root@liferay:/usr/share/tomcat7/lib/ext# mv /ccpp-1.0.jar ccpp.jar

jms.jar

root@liferay:/usr/share/tomcat7/lib/ext# wget http://download.oracle.com/otn-pub/jcp/7542-jms-1.1-fr-doc-oth-JSpec/jms-1_1-fr-apidocs.zip
root@liferay:/usr/share/tomcat7/lib/ext# cp jms1.1/lib/jms.jar ./

jutf7.jar

root@liferay:/usr/share/tomcat7/lib/ext# wget https://sourceforge.net/projects/jutf7/files/latest/download
root@liferay:/usr/share/tomcat7/lib/ext# cp jutf7-1.0.0/jutf7-1.0.0.jar ./jutf7.jar 

junit.jar

root@liferay:/usr/share/tomcat7/lib/ext# wget http://downloads.sourceforge.net/project/junit/junit/4.10/junit-4.10.jar?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fjunit%2F&ts=1481893031&use_mirror=kent
root@liferay:/usr/share/tomcat7/lib/ext# cp junit-4.10.jar\?r\=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fjunit%2F junit.jar

Ya tenemos todas la bibliotecas necesarias.

Realizar la configuración de Tomcat7

En «/usr/share/tomcat7/bin/» creamos el siguiente script «.sh» que se llamara «setenv.sh»:

CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF8 -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false -Duser.timezone=GMT -Xmx1024m -XX:MaxPermSize=256m"

Esto establece la codificacion en UTF-8, la zona horaria en Greenwich y asigna memoria a Java Virtual Machine.

<Context path="" crossContext="true">

    <!-- JAAS -->

    <!--<Realm
        classNjame="org.apache.catalina.realm.JAASRealm"
        appName="PortalRealm"
        userClassNames="com.liferay.portal.kernel.security.jaas.PortalPrincipal"
        roleClassNames="com.liferay.portal.kernel.security.jaas.PortalRole"
    />-->

    <!--
    Uncomment the following to disable persistent sessions across reboots.
    -->

    <!--<Manager pathname="" />-->

    <!--
    Uncomment the following to not use sessions. See the property
    "session.disabled" in portal.properties.
    -->

    <!--<Manager className="com.liferay.support.tomcat.session.SessionLessManagerBase" />-->
</Context>

A continuacion debemos modificar la línea que se encuentra en el fichero »
/var/lib/tomcat7/conf/catalina.properties», cambiamos esta línea:

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar

Por esta.

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/lib/ext,${catalina.home}/lib/ext/*.jar

El siguiente paso es asegurarnos de que usa codificación «UTF-8″ para ello vamos a añadir el atributo (URIEncoding=»UTF-8») donde se ve «redirectoPort=8443»:

Asegurarse que las librerías añadidas al directorio $TOMCAT_HOME/lib/ext estan cargadas cuando el servidor se arranque. Para ello abrir el fichero ‘/etc/tomcat7/catalina.propeties’

Sustituimos esta línea:

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar

Por esta:

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/lib/ext,${catalina.home}/lib/ext/*.jar

Esto permite a Catalina acceder a las dependencias jars que se extrajeron en el directorio $TOMCAT_HOME/lib/ext

Y reiniciamos el servicio /etc/init.d/tomcat7 restart

Configuración Base de Datos

Agregamos las siguientes lineas al final del fichero de configuración que se encuentra en  «/var/lib/tomcat7/conf/Catalina/localhost/ROOT.xml»:

<Context...>
    <Resource
        name="jdbc/LiferayPool"
        auth="Container"
        type="javax.sql.DataSource"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost/liferay?
        username="root"
        password="root"
        maxActive="100"
        maxIdle="30"
        maxWait="10000"
    />
</Context>
Info! La contraseña, el usuario y el nombre de la base de datos(liferay), varían según tu usuario, contraseña y nombre de la base de datos de tu servidor MySql

Despliegue de liferay

Eliminamos la carpeta que crea «tomcat7» por defecto (ROOT)  y añadimos el «.war» descargado, para que al reiniciar se despliegue (podemos cambiar el nombre para que sea más fácil de localizar):

root@liferay:/var/lib/tomcat7/webapps# rm -rf ROOT/
root@liferay:/var/lib/tomcat7/webapps# mv /home/vagrant/liferay-portal-6.2-ce-ga6-20160112152609836.war ./liferay.war

Y reiniciamos el servicio:

root@liferay:/var/lib/tomcat7/webapps# systemctl restart tomcat7.serive
Failed to restart tomcat7.serive.service: Unit tomcat7.serive.service failed to load: No such file or directory.

Podremos observar que nos devuelve un error, que vamos a solucionar observándolo en los «logs».

Solución de errores

observamos en los logs de «catalina.out» tailf /var/log/tomcat7/catalina.out, no tenemos creada las carpetas «logs», «data» y deploy

13:28:34,835 INFO  [localhost-startStop-1][AutoDeployDir:116] Creating missing directory /var/lib/deploy
13:28:34,836 ERROR [localhost-startStop-1][AutoDeployDir:122] Directory /var/lib/deploy could not be created
13:28:34,835 INFO  [localhost-startStop-1][AutoDeployDir:124] Creating missing directory /var/lib/logs
13:28:34,836 ERROR [localhost-startStop-1][AutoDeployDir:126] Directory /var/lib/logs could not be created
13:28:34,835 INFO  [localhost-startStop-1][AutoDeployDir:128] Creating missing directory /var/lib/data
13:28:34,836 ERROR [localhost-startStop-1][AutoDeployDir:130] Directory /var/lib/data could not be created

Y creamos los directorios necesario y le asignamos permisos:

root@liferay:/var/lib/tomcat7/webapps# mkdir /var/lib/logs
root@liferay:/var/lib/tomcat7/webapps# mkdir /var/lib/data 
root@liferay:/var/lib/tomcat7/webapps# chown -R tomcat7:tomcat7 /var/lib/logs /var/lib/data/ root@liferay:/var/lib/tomcat7/webapps# mkdir /var/lib/deploy 
root@liferay:/var/lib/tomcat7/webapps# chown -R tomcat7:tomcat7 /var/lib/deploy

Reiniciamos el servicio y accedemos al navegador:

Nos pedirá que añadamos el texto que se puede observar en la imagen en un fichero que llamaremos portal-ext.properties en «/var/lib»: