En esta entrada vamos a detallar cómo instalar y configurar alfresco-community (versión 4.2.c) para que utilice Solr como motor de indexación. Cada uno de los dos aplicativos correrá en su propia instancia de Tomcat, simulando así un entorno de producción donde se intenta evitar que la sobrecarga de los procesos de indexación de documentos afecten al rendimiento de Alfresco.
Descargas
Descargar las aplicaciones
- Alfresco. Lo descargamos de la URL:
- Solr. Lo descargamos de la URL:
Descargar el entorno de trabajo
Para conocer los requisitos de funcionamiento de la versión 4.2.c de Alfresco se ha consultado la documentación ofrecida en el siguiente enlace: http://wiki.alfresco.com/wiki/Alfresco_Community_4.2.c_Release_Notes.
- BBDD. Elegimos PostgreSQL 9.1
- JDK. Elegimos jdk-7u7-linux-i586.tar.gz
- Servidor. Elegimos Tomcat 7.0.30
Instalacion del entorno
Instalación de PostgreSQL 9.1
Descargamos 'PostgreSQL 9.1' y la consola de administración 'pgAdmin III' mediante los comandos:
sudo apt-get postgresql
sudo apt-get pgadmin3
Iniciamos pgadmin3 mediante el comando:
$ pgadmin3
Definimos una nueva conexión con la BBDD recien instalada, haciendo clic en la opción Añadir servidor del menú Archivo:
- Nombre de la conexión: localhost
- Servidor: 127.0.0.1
- Puerto: 5432
- Usuario: postgres
- Password: <SIN PASSWORD>
- Haciendo clic con el botón derecho del ratón sobre la opción Login Roles definimos un nuevo rol de login alfresco/alfresco con privilegios Supersuer
- Haciendo clic con el botón derecho del ratón sobre la opción Databases definimos una nueva BBDD:
- Propietario: alfesco
- Encoding: UTF-8
- Collation: en_GB.utf8
- Character type: en_GB.utf8
Instalación del JDK 1.7.0 u7
- Descargamos el 'JDK 1.7.0 u7' de la URL: http://download.oracle.com/otn/java/jdk/7u7-b10/jdk-7u7-linux-i586.tar.gz
- Descomprimimos el fichero 'jdk-7u7-linux-i586.tar.gz' en la carpeta /opt/jdk1.7.0_07
- Descargamos 'Tomcat 7.0.30' de la URL: http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.30/bin/apache-tomcat-7.0.30.tar.gz
- Creamos la carpeta /opt/alfresco
- Descomprimimos el fichero 'apache-tomcat-7.0.30.tar.gz' en la carpeta /opt/alfresco/apache-tomcat-7.0.30
- Renombramos la carpeta /opt/apache-tomcat-7.0.30 como /opt/alfresco/tomcat
- Ajustamos el Tomcat según las instrucciones de la página de Alfresco: http://wiki.alfresco.com/wiki/Install_Tomcat6
- Creamos las carpetas /opt/alfresco/tomcat/shared/lib/
- Ajustamos la propiedad 'shared.loader' del fichero /opt/tomcat-alfresco/conf/catalina.properties con el valor:
shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
- Ajustamos el fichero /opt/alfresco/tomcat/bin/startup.sh añadiendo las siguientes líneas al inicio del mismo
export ALF_HOME=.
export JAVA_OPTS='-Xmx512m -Xmx1024m -Xss256k -XX:MaxPermSize=256m -XX:NewSize=256m -server'
export JAVA_OPTS="${JAVA_OPTS} -Dalfresco.home=${ALF_HOME} -Dcom.sun.management.jmxremote"
export JAVA_OPTS="${JAVA_OPTS} -Dsun.security.ssl.allowUnsafeRenegotiation=true"
- Ajustamos el fichero /opt/alfresco/tomcat/conf/tomcat-users.xml añadiendo dentro del bloque <tomcat-users> los siguiente:
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
Instalación de la instancia Tomcat 7.0.30 para Solr
- Ya tenemos descargado 'Tomcat 7.0.30' del paso anterior
- Creamos la carpeta /opt/solr
- Descomprimimos el fichero 'apache-tomcat-7.0.30.tar.gz' en la carpeta /opt/solr/apache-tomcat-7.0.30
- Renombramos la carpeta /opt/apache-tomcat-7.0.30 como /opt/solr/tomcat
- Ajustamos el fichero /opt/solr/tomcat/bin/startup.sh añadiendo las siguientes líneas al inicio del mismo
- Ajustamos el fichero /opt/solr/tomcat/conf/server.xml
<Server port="8005" shutdown="SHUTDOWN">
- Cambiar 8080 por 9080 y 8443 por 9443 en el bloque:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- Cambiar 8009 por 9009 y 8443 por 9443 en al bloque:
<Connector port="9009" protocol="AJP/1.3" redirectPort="9443" />
- Ajustamos el fichero /opt/alfresco/tomcat/conf/tomcat-users.xml añadiendo dentro del bloque <tomcat-users> los siguiente:
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
Instalación y ajuste de Alfresco
- Extraemos el contenido del zip de alfresco (alfresco-community-4.2.c.zip) en /opt/alfresco
- Copiamos el contenido de /opt/alfresco/web-server en /opt/alfresco/tomcat (permitiendo merge all y replace all)
- Ajustamos el propietario de /opt/alfresco con:
- Creamos el fichero
a partir del fichero
/opt/alfresco/tomcat/shared/classes/alfresco-global.properties.sample
- En el fichero /opt/alfresco/tomcat/shared/classes/alfresco-global.properties añadimos/descomentamos/ajustamos lo siguientes:
alfresco.port=8080
share.port=8080
avm.rmi.service.port=50501
avmsync.rmi.service.port=50502
attribute.rmi.service.port=50503
authentication.rmi.service.port=50504
repo.rmi.service.port=50505
action.rmi.service.port=50506
wcm-deployment-receiver.rmi.service.port=50507
monitor.rmi.service.port=50508
db.name=alfresco
db.host=localhost
db.port=5432
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://${db.host}:${db.port}/${db.name}
- Creamos el fichero
a partir del fichero
/opt/alfresco/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml.sample
- En el fichero /opt/alfresco/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml descomentamos el primer bloque (ojo que hay dos) <config evaluator="string-compare" condition="Remote">
- Arrancamos el tomcat de alfresco con:
- Monitorizamos la consola con:
- Probamos que todo funciona accediendo a las URL:
http://localhost:8080/alfresco/faces/jsp/login.jsp (admin/admin)
Instalación y ajuste de Solr
- Extraemos el contenido del zip de solr (alfresco-community-solr-4.2.c.zip) en /opt/solr
- Ajustamos el propietario de /opt/solr con:
- Copiamos el fichero
creando las carpetas necesarias, en
/opt/solr/tomcat/conf/Catalina/localhost/solr.xml
- Editamos el fichero /opt/solr/tomcat/conf/Catalina/localhost/solr.xml y remplazamos las dos apariciones de @@ALFRESCO_SOLR_DIR@@ por /opt/solr
- Creamos la carpeta /opt/solr/solrdata
- Editamos el fichero /opt/solr/workspace-SpacesStore/conf/solrcore.properties y reemplazamos @@ALFRESCO_SOLR_DIR@@ por /opt/solr/solrdata
- Editamos el fichero /opt/solr/archive-SpacesStore/conf/solrcore.properties y reemplazamos @@ALFRESCO_SOLR_DIR@@ por /opt/solr/solrdata
Ajustes SSL para Alfresco
- Creamos la carpeta /opt/alfresco/alf_data/keystore
- Copiamos el contenido de
en
/opt/alfresco/alf_data/keystore
- Editamos el fichero /opt/alfresco/tomcat/conf/tomcat-users.xml añadiendo lo siguiente al bloque <tomcat-users>:
O=Alfresco Software Ltd., L=Maidenhead, ST=UK, C=GB"
roles="repoclient" password="null"/>
- Editamos el fichero /opt/alfresco/tomcat/conf/server.xml añadiendo en el nodo <Service name="Catalina"> lo siguiente:
protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
maxThreads="150"
scheme="https"
keystoreFile="/opt/alfresco/alf_data/keystore/ssl.keystore"
keystorePass="kT9X6oe68t"
keystoreType="JCEKS"
secure="true"
connectionTimeout="240000"
truststoreFile="/opt/alfresco/alf_data/keystore/ssl.truststore"
truststorePass="kT9X6oe68t"
truststoreType="JCEKS"
clientAuth="false"
sslProtocol="TLS"
allowUnsafeLegacyRenegotiation="true"
/>
- Ajustamos el fichero /opt/alfresco/tomcat/shared/classes/alfresco-global.properties añadiendo/modificando/descomentado:
index.subsystem.name=solr
solr.port.ssl=9443
solr.port=9080
solr.secureComms=https
Ajustes SSL para Solr
- Creamos la carpeta /opt/solr/keystore
- Copiamos el contenido de
en
/opt/solr/keystore
- Editamos el fichero /opt/solr/tomcat/conf/tomcat-users.xml añadiendo lo siguiente al bloque <tomcat-users>:
O=Alfresco Software Ltd., L=Maidenhead, ST=UK, C=GB"
roles="repository" password="null"/>
- Editamos el fichero /opt/solr/tomcat/conf/server.xml añadiendo en el nodo <Service name="Catalina"> lo siguiente:
protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
maxThreads="150"
scheme="https"
keystoreFile="/opt/solr/keystore/ssl.keystore"
keystorePass="kT9X6oe68t"
keystoreType="JCEKS"
secure="true"
connectionTimeout="240000"
truststoreFile="/opt/solr/keystore/ssl.truststore"
truststorePass="kT9X6oe68t"
truststoreType="JCEKS"
clientAuth="false"
sslProtocol="TLS"
allowUnsafeLegacyRenegotiation="true"
/>
Puesta en marcha y verificación del funcionamiento
Para poner en marcha lo anterior deberemos arrancar solr y alfresco:
/opt/solr/tomcat/bin/startup.sh
/opt/alfresco/tomcat/bin/startup.sh
Una vez levantados ambos servidores, verificamos el número de ficheros de los índices en Solr:
/opt/solr/solrdata/workspace/SpacesStore/index
Accedemos al portal http://localhost:8080/share, entrando con admin/admin, accedemos al espacio de invitado del repositorio y añadimos algún documento.
Si todo va bien deberíamos ver que el número de ficheros de la carpeta de índices del solr ha variado.