Instal·lació Alfresco Community 3.4 - febrer 2011
Contingut
Instal.lació i configuració
Installing Alfresco on Linux
Nota. La instal.lació s'ha fet sense problemes, però en iniciar la màquina no arrenca el Tomcat quan faig ./alfresco.sh start. Mirar el comentari al final.
Descarrego alfresco-community-3.4.d-installer-linux-x64.bin
The installation wizard for Linux installs all the software and components that you require for running Alfresco. This installation wizard installs Alfresco and additional software, including OpenOffice, JDK, SWFTools, ImageMagick, and Tomcat.
carpeta d'instal.lació /home/joan/alfresco-3.4.d port Tomcat: 8080 port Alfreso FTP server: 2121 puerto RMI de Alfresco: 50500 (execute remote commands) pwd Admin: alfresco sharepoint protocol: 7070 Servidor Quickr: 6060 Servidor Openoffice: 8100
S'instal.la sense problmemes. El Tomcat queda instal.lat a /home/joan/alfresco-3.4.d/tomcat
La propera vegada que reinicio la màquina els serveix s'engeguen fent ./alfresco.sh start. Però el Tomcat no arrenca. Encara que faci sudo ./alfresco.sh start tampoc arrenca.
Instal.lació II (em penso que sí, però no)
El problema deu ser de permisos. Evidentment, el Tomcat hauria d'arrencar com a root. La clau està en arrencar el binari com a root: (NOTA: no, el problema no és de permisos!)
$ sudo ./alfresco-community-3.4.d-installer-linux-x32.bin
Ara el directori d'instal.lació ja no serà /home/joan sinó /opt: /opt/alfresco-3.4.d3
La instal.lació acaba sense problemes, però ara l'important és que quan reinicio arrenca bé el mysql i el Tomcat:
$ sudo ./alfresco.sh start 110225 18:36:19 mysqld_safe Logging to '/opt/alfresco-3.4.d3/mysql/data/mysqld.log'. 110225 18:36:19 mysqld_safe Starting mysqld.bin daemon with databases from /opt/alfresco-3.4.d3/mysql/data /opt/alfresco-3.4.d3/mysql/scripts/ctl.sh : mysql started at port 3306 Using CATALINA_BASE: c/tomcat Using CATALINA_HOME: /opt/alfresco-3.4.d3/tomcat Using CATALINA_TMPDIR: /opt/alfresco-3.4.d3/tomcat/temp Using JRE_HOME: /opt/alfresco-3.4.d3/java Using CLASSPATH: /opt/alfresco-3.4.d3/tomcat/bin/bootstrap.jar /opt/alfresco-3.4.d3/tomcat/scripts/ctl.sh : tomcat started
En reiniciar ha arrencat bé el tomcat, però al tornar-ho a fer ja no
Instal.lació III (ara sí)
En acabar la instal.lació em deixa escollir entre activar els serveis automàticament o no. Pensava que el problema podia venir per aquí. El fitxer /etc/init.d/alfresco és un script que la única cosa que fa és cridar /opt/alfresco-3.4.d start, per tant, no té res a veure amb el mal funcionament o no.
Recordem que el problema està en què quan faig una instal.lació, al final de la instal.lació arrenca bé l'Alfresco (és a dir, el Tomcat, perquè el mysql no dóna cap problema), però quan reinicio la màquina dóna un problema el Tomcat. El problema que em dóna és:
$ sudo /etc/init.d/alfresco start 110305 19:56:34 mysqld_safe Logging to '/opt/alfresco-3.4.d2/mysql/data/mysqld.log'. 110305 19:56:34 mysqld_safe Starting mysqld.bin daemon with databases from /opt/alfresco-3.4.d2/mysql/data /opt/alfresco-3.4.d2/mysql/scripts/ctl.sh : mysql started at port 3306 Using CATALINA_BASE: /opt/alfresco-3.4.d2/tomcat Using CATALINA_HOME: /opt/alfresco-3.4.d2/tomcat Using CATALINA_TMPDIR: /opt/alfresco-3.4.d2/tomcat/temp Using JRE_HOME: /opt/alfresco-3.4.d2/java Using CLASSPATH: /opt/alfresco-3.4.d2/tomcat/bin/bootstrap.jar PID file (/opt/alfresco-3.4.d2/tomcat/temp/catalina.pid) found. Is Tomcat still running? Start aborted. /opt/alfresco-3.4.d2/tomcat/scripts/ctl.sh : tomcat could not be started
És a dir, troba el fitxer catalina.pid i es pregunta si Tomcat està funcionant i no pot arrencar el Tomcat. La solució passa per esborrar aquest fitxer catalina.pid. Per tal que això no passi cada vegada que arrenqui, el que s'ha de fer és apagar el Tomcat correctament:
$ sudo rm /opt/alfresco-3.4.d/tomcat/temp/catalina.pid
$ sudo /etc/init.d/alfresco stop o bé $ sudo /etc/init.d/alfresco stop tomcat
i d'aquesta manera el fitxer catalina.pid ja no deixa rastre.
Ara ja podem arrencar el Alfresco (mysql+tomcat) i assegurar-nos de què funciona correctament:
$ sudo /etc/init.d/alfresco mysql start 110305 19:56:34 mysqld_safe Logging to '/opt/alfresco-3.4.d2/mysql/data/mysqld.log'. 110305 19:56:34 mysqld_safe Starting mysqld.bin daemon with databases from /opt/alfresco-3.4.d2/mysql/data /opt/alfresco-3.4.d2/mysql/scripts/ctl.sh : mysql started at port 3306 $ sudo /etc/init.d/alfresco start tomcat Using CATALINA_BASE: /opt/alfresco-3.4.d/tomcat Using CATALINA_HOME: /opt/alfresco-3.4.d/tomcat Using CATALINA_TMPDIR: /opt/alfresco-3.4.d/tomcat/temp Using JRE_HOME: /opt/alfresco-3.4.d/java Using CLASSPATH: /opt/alfresco-3.4.d/tomcat/bin/bootstrap.jar /opt/alfresco-3.4.d/tomcat/scripts/ctl.sh : tomcat started
$ sudo /etc/init.d/alfresco status tomcat running mysql running
Tot i que el tomcat està ben engegat, no puc entrar en el Alfresco, però sí que puc entrar en el Share (tot i que no sé quin password ficar).
- http://localhost:8080/alfresco (Alfresco Web Client)
- http://localhost:8080/share -> sí funciona (Alfresco Project Slingshot)
Com veuré de seguida, per entrar en el share primer he d'entrar en l'Alfresco. I per entrar en el Alfresco primer he de saber entrar en el manager del Tomcat.
el tomcat funciona bé, però encara no sé entrar en el manager del tomcat:
que em serveix per visualitzar si el Alfresco o el Share estan ben instal.lats.
Per entrar en el manager/ he de crear un usuari amb roles=manger,admin dins el fitxer /opt/alfresco-3.4.d2/tomcat/conf/tomcat-users.xml
<tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="admin"/> <role rolename="manager"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> <user username="joan" password="****" roles="admin,manager"/> </tomcat-users>
Reinicio el tomcat:
$ sudo /etc/init.d/alfresco restart tomcat
i ara ja puc entrar en el manager amb el compte que he creat: joan/****
Veig que efectivament Alfresco està aturat (si veig que està arrencat faig un reload). Arrenco alfresco des d'aquí. Triga, però al final arrenca:
OK - Started application at context path /alfresco
i ara ja puc entrar al que pròpiament anomenem Alfresco, que és el web client: (amb el password de la instal.lació: admin/alfresco)
i el que també és important, ara ja puc entrar en el Share amb el mateix login i password:
Per tant, per entrar en el share el Alfresco ha d'estar iniciat. Hi ha un tutorial per al Alfresco Share:
És molt important el fitxer /opt/alfresco-3.4.d2/tomcat/shared/classes/alfresco-global.properties
############################### ## Common Alfresco Properties # ############################### dir.root=/opt/alfresco-3.4.d2/alf_data web.application.context.url=http://127.0.0.1:8080/alfresco ### database connection properties ### db.driver=org.gjt.mm.mysql.Driver db.username=alfresco db.password=**** db.name=alfresco db.url=jdbc:mysql://localhost:3306/${db.name}?useUnicode=yes&characterEncoding=UTF-8 ### FTP Server Configuration ### ftp.enabled=true ftp.port=21 ftp.ipv6.enabled=false ### RMI service ports ### alfresco.rmi.services.port=50500 avm.rmi.service.port=0 avmsync.rmi.service.port=0 attribute.rmi.service.port=0 authentication.rmi.service.port=0 repo.rmi.service.port=0 action.rmi.service.port=0 deployment.rmi.service.port=0 ### External executable locations ### ooo.exe=/opt/alfresco-3.4.d2/openoffice/program/soffice.bin ooo.enabled=false img.root=/opt/alfresco-3.4.d2/common img.dyn=${img.root}/lib img.exe=${img.root}/bin/convert swf.exe=/opt/alfresco-3.4.d2/common/bin/pdf2swf jodconverter.enabled=true jodconverter.officeHome=/opt/alfresco-3.4.d2/openoffice jodconverter.portNumbers=8101 ### Initial admin password ### alfresco_user_store.adminpassword=eac2d371655e14c1dc0744fd60a70251
Còpia de seguretat i recuperació. Migrar informació entre dues instàncies d'Alfresco
Vaig a fer una mica d'activitat, doncs després faré una migració entre dues instàncies d'Alfresco diferents per comprovar que funciona el backup/recovery/migració.
Arrel de totes les proves que he fet amb la instal.lació tinc dues instàncies d'Alfresco: /opt/alfresco-3.4.d i /opt/alfresco-3.4.d2. Creo activitat en la segona instància i vull migrar-la a la primera instància.
Dins de la instància /opt/alfresco-3.4.d2, en el site users Home, creo la carpeta tutorials, i penjo 2 o 3 pdf's. Això evidentment implicarà escritura de fitxers en disc i escriptura a la BD, que és el que m'interessa.
Ara ja puc fer el Backup i Restore d'Alfresco:
By default, the dir.root contains both the content and indexes, and it is possible to backup just the content and then do a full reindex when a backup is restored. A full reindex can be a time consuming process however, so the steps below include the indexes in the backup. Cold Backup Procedure 1. Stop Alfresco. 2. Backup the database Alfresco is configured to use, using your database vendor's backup tools. 3. Backup the Alfresco dir.root directory in its entirety. 4. Store both the database and Alfresco dir.root backups together as a single unit. For example, store the backups in the same directory or compressed file. 5. Start Alfresco. In versions 3.2 and above, the dir.root directory is usually defined in <configRoot>/alfresco-global.properties. By default this directory is named alf_data and is located within the directory where Alfresco is installed.
En el meu cas:
- dir.root=/opt/alfresco-3.4.d2/alf_data
Restore Procedure 1. Stop Alfresco. 2. Copy the existing dir.root to a temporary location. 3. Restore dir.root. 4. If you are restoring from a hot backup, rename <dir.root>/backup-lucene-indexes to <dir.root>/lucene-indexes. 5. Restore the database from the database backups. 6. Start Alfresco.
Senzillament per fer una còpia de seguretat en fred de dues bases de dades el que faig és copiar el contingut de la carpeta data/:
$ sudo cp -R /opt/alfresco-3.4.d/mysql/data /opt/alfresco-3.4.d/mysql/data_old $ sudo cp -R /opt/alfresco-3.4.d2/mysql/data/* /opt/alfresco-3.4.d/mysql/data
Això m'atreveixo a fer-ho d'aquesta manera perquè són dues versions iguals de mysql i que a part de la bd mysql i template, només tenen la bd d'interès: alfresco.
If you absolutely must use copy and paste the MySQL services at both ends must be stopped, you must have the same configurations and you must copy all the log files as well as the data folders.
i ara copiem la part dels fitxers del Alfresco
$ sudo cp -R /opt/alfresco-3.4.d/alf_data /opt/alfresco-3.4.d/alf_data_old $ sudo cp -R /opt/alfresco-3.4.d2/alf_data/* /opt/alfresco-3.4.d/alf_data
Fixem-nos que en aquesta carpeta hi ha una carpeta per a cada base de dades, i hi ha els logs. Per fer aquesta operació de còpia, s'ha de copiar TOT, fins i tots els log.
Intentem mirar el contingut conegut en la carpeta, busquem els pdf:
$ find /opt/alfresco-3.4.d2/alf_data -name "*.pdf" -type f
i no els trobem! Fixem-nos que aquí hi hauria d'haver els tres fitxers pdf, però en canvi no hi ha res. El que fem és trobar els fitxers bin, el format del Alfresco (TBD)
/alf_data/contentstore/2011/3/5/20$ -rw-r--r-- 1 root root 2385718 2011-03-05 20:10 01fbda5a-e72e-4de7-a12a-9060e21614e8.bin -rw-r--r-- 1 root root 557713 2011-03-05 20:10 aaa175e7-4e1f-4950-8ba0-3a9fd6dbb37c.bin
Bé doncs, arrenco la primera instància d'Alfresco i ja veig els pdf's. La migració s'ha fet correctament.
Configurar el servidor SMTP amb Gmail
- http://wiki.alfresco.com/wiki/Outbound_E-mail_Configuration
- http://wiki.alfresco.com/wiki/Repository_Configuration
El primer de tot que s'hauria de mirar és que no tinguem cap firewall que ens impedeixi connectar-nos al servidro de gmail pel port 465:
$ telnet smtp.gmail.com 465 Trying 74.125.39.109... Connected to gmail-smtp-msa.l.google.com. Escape character is '^]'.
Segons es comenta en el post, la configuració del fitxer alfresco-global.properties seria de la següent manera (tot i que no funciona)
$ sudo joe /opt/alfresco-3.4.d/tomcat/shared/classes/alfresco-global.properties
# Sample Gmail settings mail.host=smtp.gmail.com mail.port=465 mail.protocol=smtps mail.username=user@gmail.com mail.password=password # New Properties mail.smtps.starttls.enable=true mail.smtps.auth=true
A més, es crea el fitxer
$ sudo joe /opt/alfresco-3.4.d/tomcat/shared/classes/alfresco/extension/custom-email-context.xml
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'> <beans> <!-- --> <!-- MAIL SERVICE --> <!-- --> <bean id="mailService" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host"> <value>${mail.host}</value> </property> <property name="port"> <value>${mail.port}</value> </property> <property name="protocol"> <value>${mail.protocol}</value> </property> <property name="username"> <value>${mail.username}</value> </property> <property name="password"> <value>${mail.password}</value> </property> <property name="defaultEncoding"> <value>${mail.encoding}</value> </property> <property name="javaMailProperties"> <props> <prop key="mail.smtps.auth">${mail.smtps.auth}</prop> <prop key="mail.smtps.starttls.enable">${mail.smtps.starttls.enable}</prop> </props> </property> </bean> </beans>
Reiniciem el tomcat (compte!, fer-ho bé). I per testejar l'enviament d'un mail el més ràpid és convidar un usuari amb permisos de Contribuïdor sobre un Site (i escollir l'opció enviar un mail de notificació). Tanmateix, no envia un mail. Per saber què està passant, s'ha de mirar els logs. Miro /logs/catalina.out, i veig que intenta enviar el mail:
22:20:06,362 INFO [management.subsystems.ChildApplicationContextFactory] Startup of 'wcm_deployment_receiver' subsystem, ID: [wcm_deployment_receiver, default] complete 22:22:05,975 User:joan ERROR [web.bean.TemplateMailHelperBean] Failed to send email to joan_quintana@yahoo.com org.springframework.mail.MailSendException; nested exception details (1) are: Failed message 1: javax.mail.MessagingException: IOException while sending message; nested exception is: java.io.UnsupportedEncodingException: ${mail.encoding} at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:625) at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:402) ... Caused by: java.io.UnsupportedEncodingException: ${mail.encoding} ...
Hi ha un problema amb el mail.encoding. Cercant informació en el Google hi ha gent que s'ha trobat en el mateix problema, i finalment la resposta està en aquest post:
El fitxer alfresco-global.properties queda de la següent manera:
## New Properties #mail.smtps.starttls.enable=true #mail.smtps.auth=true mail.host=smtp.gmail.com #mail.port=25 mail.username=joanqc mail.password=****** mail.encoding=UTF-8 mail.from.default=joanqc@gmail.com #mail.smtp.auth=true #trying to enable ssl mail.port=465 mail.protocol=smtps mail.smtps.starttls.enable=true mail.smtps.auth=true
i ara sí que s'envia el mail. Sembla ser que el mail.username=joanqc (sense @gmail.com)
creat per Joan Quintana Compte, febrer 2011-març 2011