Instalación de Alfresco con MySQL en Linux desde la linea de comandos

En este artículo os voy a mostrar el procedimiento para instalar Alfresco Enterprise 4.1.1 o Community en un servidor Linux 64bits usando el instalador (bundle) desde la linea de comandos (si no tenemos interfaz gráfica instalada en nuestro servidor), y como hacerlo con MySQL 5.1 en lugar de Postgresql (que viene por defecto en el instalador). Usaré Alfresco Enterprise 4.1.1 pero todos los comandos son igualmente válidos para Community;

Descargar el instalador de Alfresco (Enterprise o Community):

Enterprise de este enlace: http://www.alfresco.com/products/enterprise/trial

Community de este otro: alfresco-community-4.2.b-installer-linux-x64.bin

También descargamos el driver de conexión JDBC con MySQL de este enlace: http://dev.mysql.com/downloads/connector/j/

Creamos un usuario con el que correrá el servidor de aplicaciones (Tomcat), por ejemplo, un usuario llamado “alfresco”:

[bash]
# useradd alfresco
[/bash]

Asignamos una contraseña al usuario alfresco:

[bash]
# passwd alfresco
Changing password for user alfresco.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[/bash]

Antes de seguir, comprueba que tienes correctamente configurado el fichero de hosts del servidor (/etc/hosts), algo así:

[bash]
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.22 servidor.dominio.com servidor
[/bash]

Creamos el directorio donde vas a instalar Alfresco y damos permisos al usuario que acabamos de crear (ponle el nombre y versión si quieres), por ejemplo yo usaré:

[bash]
# mkdir /opt/alfresco-enterprise-4.1.1
# chown alfresco.alfresco /opt/alfresco-enterprise-4.1.1
[/bash]

Accedemos con ese usuario o vamos desde root:

[bash]
# su – alfresco
[/bash]

Tras tener el paquete y el conector con mysql descargados, vamos a empezar la instalación:

Si el paquete no estuviese ejecutable puedes hacerlo con el siguiente comando:

[bash]
$ chmod +x alfresco-*-installer-linux-x64.bin
[/bash]

Ejecutamos el instalador y seguimos los pasos como se indica a continuación, fíjate bien en las opciones que elijo, cambia el nombre de base de datos, usuario y contraseña en tu caso, también ojo a los cambios al usar MySQL:

[bash]
$ ./alfresco-enterprise-4.1.1-installer-linux-x64.bin
Language Selection

Please select the installation language
[1] English – English
[2] French – Français
[3] Spanish – Español
[4] Italian – Italiano
[5] German – Deutsch
[6] Japanese – 日本語
[7] Dutch – Nederlands
[8] Russian – Русский
[9] Simplified Chinese – 简体中文
Please choose an option [1] : 3
—————————————————————————-
Bienvenido a la instalación de Alfresco Enterprise.

—————————————————————————-
Tipo de instalación

[1] Fácil: instala los servidores con la configuración por defecto
[2] Avanzada: Configura las propiedades de servicio y los puertos de servidor.: También puede elegir componentes opcionales para instalar.
Por favor seleccione una opción [1] : 2

—————————————————————————-
Seleccione los componentes que desea instalar; desmarque aquellos que no desea.

Java [Y/n] :Y

PostgreSQL [Y/n] :n

Alfresco : Y (Cannot be edited)

SharePoint [Y/n] :Y

Web Quick Start [y/N] : N

OpenOffice [Y/n] :Y

¿Es correcta la selección que se muestra aqui arriba? [Y/n]: Y

—————————————————————————-
Carpeta de instalación

Por favor, elija una carpeta para instalar Alfresco Enterprise

Seleccionar una carpeta [/home/alfresco/alfresco-4.1.1]: /opt/alfresco-enterprise-4.1.1

—————————————————————————-
Configuración de la base de datos

URL de JDBC: [jdbc:postgresql://localhost/alfresco]: jdbc:mysql://localhost/alfresco?useUnicode=yes&characterEncoding=UTF-8

Controlador JDBC: [org.postgresql.Driver]: org.gjt.mm.mysql.Driver

Nombre de la base de datos: [alfresco]: alfresco

Nombre de usuario: []: alfresco

Contraseña: :
Verificar: :
—————————————————————————-
Configuración de puerto Tomcat

Por favor, introduzca los parámetros de configuración de Tomcat que desea
utilizar.

Dominio de Servidor Web: [127.0.0.1]:

Puerto del servidor Tomcat: [8080]:

Puerto de cierre de Tomcat: [8005]:

Puerto SSL de Tomcat [8443]:

Puerto AJP de Tomcat: [8009]:

—————————————————————————-
Puerto FTP de Alfresco

Por favor, elija un número de puerto para usar para el servidor FTP integrado de
Alfresco.

Puerto: [2121]:

—————————————————————————-
Puerto RMI de Alfresco

Por favor, elija un número de puerto que utilizará Alfresco para ejecutar
comandos remotos.

Puerto: [50500]:

—————————————————————————-
Contraseña de admin

Por favor, especifique una contraseña a utilizar para la cuenta de administrador
de Alfresco.

Contraseña de admin: :
Repita la contraseña: :
—————————————————————————-
Puerto de SharePoint en Alfresco

Por favor, elija un número de puerto para el protocolo SharePoint.

Puerto: [7070]:

—————————————————————————-
Puerto de servidor OpenOffice

Por favor, introduzca el puerto en el que el Servidor de OpenOffice va a
escuchar por defecto.

Puerto de servidor OpenOffice [8100]:

—————————————————————————-
El programa está listo para iniciar la instalación de Alfresco Enterprise en su
ordenador.

¿Desea continuar? [Y/n]: Y

—————————————————————————-
Por favor espere mientras se instala Alfresco Enterprise en su ordenador.

Instalando
0% ______________ 50% ______________ 100%
#########################################

—————————————————————————-
El programa terminó la instalación de Alfresco Enterprise en su ordenador.

Ver el archivo Léeme [Y/n]: n

Lanzar Alfresco Enterprise Share [Y/n]: n
[/bash]

Como ves en el asistente, no arrancamos ya que nos quedan algunas tareas por acometer todavía.

Fijate sobre todo en las líneas:
PostgreSQL [Y/n] :n
URL de JDBC: [jdbc:postgresql://localhost/alfresco]: jdbc:mysql://localhost/alfresco?useUnicode=yes&characterEncoding=UTF-8
Controlador JDBC: [org.postgresql.Driver]: org.gjt.mm.mysql.Driver
Nombre de la base de datos: [alfresco]: alfresco
Nombre de usuario: []: alfresco

Cambia mysql://localhost/alfresco por la IP o nombre del servidor MySQL y alfresco por el nombre de la base de datos.

Copia el jar con el conector JDBC de MySQL al siguiente directorio:

[bash]
$ cp mysql-connector-java-5.1.18-bin.jar /opt/alfresco-enterprise-4.1.1/tomcat/lib/
[/bash]

Antes de arrancar el servidor de aplicaciones, en el servidor MySQL, que ya debería estar instalado y levantado, ya sea en local o en un servidor separado hay que crear la base de datos y dar los permisos:

[bash]
# mysql -u root -p
Enter password:

mysql> create database alfresco;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on alfresco.* to alfresco@localhost identified by ‘alfresco’;
Query OK, 0 rows affected (0.00 sec)
[/bash]

Hecho lo anterior podrías proceder a hacer algunos cambios en la configuración, pero también puedes hacerlo una vez levantado el servidor (e ir reiniciando con cada cambio si usas Community o sin necesidad de reiniciar si usas Enterprise y la consola de administración).

Arrancamos el servidor:

[bash]
$ cd /opt/alfresco-enterprise-4.1.1/
$ ./alfresco.sh start
Using CATALINA_BASE: /opt/alfresco-enterprise-4.1.1/tomcat
Using CATALINA_HOME: /opt/alfresco-enterprise-4.1.1/tomcat
Using CATALINA_TMPDIR: /opt/alfresco-enterprise-4.1.1/tomcat/temp
Using JRE_HOME: /opt/alfresco-enterprise-4.1.1/java
Using CLASSPATH: /opt/alfresco-enterprise-4.1.1/tomcat/bin/bootstrap.jar
Using CATALINA_PID: /opt/alfresco-enterprise-4.1.1/tomcat/temp/catalina.pid
/opt/alfresco-enterprise-4.1.1/tomcat/scripts/ctl.sh : tomcat started
[/bash]

Podemos ver los logs con el siguiente comando:

[bash]
$ tail -f tomcat/logs/catalina.out
[/bash]

Deberíamos ver lineas que nos indican que se va poblando la base de datos, también que se crean los índices de SORL.
Recuerda que verás el siguiente error en el log:

[bash]
ERROR [org.alfresco.fileserver] [CIFS Server] [SMB] Server error
[/bash]

Al iniciar con un usuario no root, Alfresco no puede levantar el subsistema CIFS ya que no puede usar un puerto por debajo del 1024. Para resolverlo (aunque deberás redireccionar los puertos http://docs.alfresco.com/4.0/topic/com.alfresco.enterprise.doc/tasks/fileserv-CIFS-useracc.html) puedes cambiar la configuración de los puertos de CIFS añadiendo los siguientes parámetros en en el fichero de configuración: tomcat/shared/classes/alfresco-global.properties

[bash]
cifs.tcpipSMB.port=1445
cifs.netBIOSSMB.sessionPort=1139
cifs.netBIOSSMB.namePort=1137
cifs.netBIOSSMB.datagramPort=1138
[/bash]

Cuando en el log veas la línea:

[bash]
INFO: Server startup in 104835 ms
[/bash]

Significa que está arrancado y ya puedes acceder a Alfresco Share mediante http://localhost:8080/share o el nombre de servidor que tengas y a Alfresco Explorer con http://localhost:8080/alfresco. Por FTP, recuerda que se usa el puerto 2121 por defecto (si no haces redirección con IPTables). Por Webdav sería con la URL: http://localhost:8080/alfresco/webdav.

20 thoughts to “Instalación de Alfresco con MySQL en Linux desde la linea de comandos”

  1. Hola Tony, excelente post solo tengo una duda: es funcional una migración desde una version anterior de alfresco a esta otra por ejemplo de 3.4.d a la 4.2? Lo digo por los cambios en la estructura de la base de datos que se dan en esta nueva version. Otra pregunta un poco aislada del tema: como podría saber a que carpetas o espacios tiene acceso un usuario pues no he encontrado forma de hacerlo y me imagino que talvez haciendo alguna consulta en la base de datos de alfresco directamente.
    Gracias Tony!!!

  2. Hola David,

    Sí, se podría actualizar aunque en Community no he probado cual es el comportamiento.

    Sobre tu segunda pregunta, supongo que haciendo una consulta mediante la API se sacaría esa información, hacerlo sobre la BBDD sería demasiado complejo, mejor contra la API. Hace tiempo vi un script en javascript para extraer esa información pero no recuerdo si fue en http://www.fegor.com o en otro blog.

    Saludos.

  3. Buenas. Perdona mi torpeza, pero cuando dices al final del proceso ¨Fijate sobretodo en las lineas ….¨ ¿a que fichero te refieres exactamente?

    Muchas gracias.

  4. Hola Cormo, me refiero a que en el asistente esas son las lineas a tener más en cuenta para configurarlo con MySQL. Saludos.

  5. Entendido, no lo habia entendido asi por eso me hice un lio. Muchas gracias por el tutorial, me ha sido muy util, sencillo de seguir (ahora que me quitaste esta pequeña duda, mas aun), y al grano.

    Enhorabuena.

  6. Saludos Toni.

    Segui los pasos estoy tratando de instalar alfresco 4.2 comminuty en centos 6.3 pero se me presente el siguiente error en el catalaina.out.

    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘processor.model.helper’ defined in URL alfresco

    Creo que eso cuase que no pueda entrar a share o alfresco. ya que me presenta el error 404 de que no encuentra el recurso.

    Serias tan amable de ayudarme por favor.

  7. Hola Fernando, con solo esa linea del log es complicado saber lo que pasa.
    Revisa la configuración de red y nombre del servidor, mira que estén correctos los ficheros /etc/hosts y /etc/sysconfig/network. Por otro lado depende de la versión concreta de la community o si es nightly build igual puede ser otra cosa.

    Saludos.

  8. Saludos Toni te molesto nuevamente este es todo el error.

    Caused by: java.net.UnknownHostException: ecuio009523.localdomain: ecuio009523.localdomain: Nombre o servicio desconocido
    at java.net.InetAddress.getLocalHost(InetAddress.java:1438)
    at org.springframework.extensions.webscripts.GUID.(GUID.java:53)
    … 89 more
    Caused by: java.net.UnknownHostException: ecuio009523.localdomain: Nombre o servicio desconocido
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866)
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258)
    at java.net.InetAddress.getLocalHost(InetAddress.java:1434)
    … 90 more

  9. Como te comenté, diría que es un problema de tu configuración de red/nombre de máquina. Revisa que está algo como esto:

    /etc/hosts
    # Do not remove the following line, or various programs
    # that require network functionality will fail.
    127.0.0.1 localhost.localdomain localhost
    ::1 localhost6.localdomain6 localhost6
    192.168.0.22 servidor.dominio.com servidor

    /etc/sysconfig/network
    NETWORKING=yes
    NETWORKING_IPV6=no
    HOSTNAME=servidor.dominio.com

    Borra el directorio de instalación, la base de datos también y la vuelves a crear (o vacíala), vuelve a hacer la instalación desde cero y te debería funcionar.

  10. me da este error:

    2014-09-24 11:44:00,015 ERROR [solr.tracker.CoreTracker] [SolrTrackerScheduler_Worker-1] Tracking failed

    alguna forma de solucionarlo?

  11. Hola mi nombre es Alejandra Escobar, estoy tratando de instalar Alfresco 5.0.C pero tengo un pequeño problema con el tomcat anteriormente tengo instalado en mi server jasperreportserver y ahora no se como configurar el tomcat para que me funcione con los dos, no se como tengo que cambiar la configuracion ya que cuando se instalan cualquiera de los dos automaticamente instala el tomcat entonces realmente no se que hacer, si tu tienes una idea te lo agradecere

  12. Hola Alejandra,
    La verdad es que nunca he instalado Jasper Reports Server por lo que desconozco que cambios hará en Tomcat. Lo ideal, si quieres ver como funciona Alfresco, es que lo montes en un Tomcat dedicado usando por ejemplo el installer y luego veas como está el Tomcat que trae nuestro bundle para compararlo con el que ya tienes. Recuerda cambiarle los puertos por defecto ya que me imagino que estarán siendo usados por el Tomcat que ya tienes.
    Saludos.

  13. Gracias por tu respuesta . Si hay conflicto con los puertos y para instalarlo hay que bajar el otro tomcat. Gracias seguiré investigando. Saludos

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.