Instal.lació Alfresco Community 3.4 - febrer 2011

De Wikijoan
Dreceres ràpides: navegació, cerca

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).

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:

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

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

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines