Alfresco et PostGreSQL

Bonjour

Comme promis voici mon nouveau POST pour vous expliquer la marche à suivre pour utiliser PostgreSQL à la place de Mysql comme base de données sur Alfresco.

Quelques préliminaires

Tout mes tests ont été effectués sur une linux Mandriva 2009.1, avec la dernière version d’Alfresco la 3.2r2 disponible depuis le 23 novembre 2009. La version de PostgreSQL est la 8.3.

Tout d’abord, depuis la version 3.2x Alfresco utilise pas defaut Mysql, d’ailleurs lors de l’installation une interface d’aide à la création de la base de données est proposée.

[[Image]]

Remarque : L’installeur graphique sous linux pose des problèmes, notamment le paramétrage de la base de données Mysql, ainsi que la localisation d’openoffice.org.

Il est préférable d’exécuter l’installeur en ligne de commande.

prompt> ./Alfresco-Community-3.2r2-Linux-x86-Install -mode console

Voir l’installation en suivant le post suivant : installation_Alfresco.

Pour finir ces préliminaires, je tiens à signaler que l’avenir de Mysql pour l’instant n’est pas très rose. L’Europe fait tout ce qu’elle peut auprès d’ORACLE pour permettre la libération du projet dans le cadre du rapprochement ORACLE/SUN, mais cela ne va pas être facile. Donc en attendant, je pense que faire le choix de PostGreSQL est certainement une bonne initiative de pérennité (espérons qu’Alfresco reprendra sa copie pour réintégrer PostgreSQL dans son projet) .

Bien sur, je laisse les spécialistes dire tout le bien du projet PostgreSQL qui n’a rien à envier au projet Mysql, voir même plutôt le contraire.

Installation de PostgreSQL

L’installation de PostgreSQL sur Mandriva s’effectue par l’utilisation de la commande urpmi (je suppose que vos dépôts sont à jour). Les 2 packages suivants sont nécessaires : postgresql et postgresql-server.

prompt> urpmi postgresql8.3-server
prompt> urpmi postgresql8.3

Par défaut, la base de données aura le nom « alfresco » et l’utilisateur avec tous les droits et son mot de passe sera : « alfresco » et « alfresco« . Bien évidemment ces valeurs doivent être modifiées selon votre projet.

initialisation de la base de données Alfresco

Lors de l’installation, un utilisateur « postgres » est créé. Se connecter sur l’utilisateur « postgres » :

prompt> su -l postgres

Executer le shell de postgres :

prompt> psql

Créer la base de données :

prompt_postgres# CREATE DATABASE alfresco;

Créer l’utilisateur :

 prompt_postgres# CREATE USER alfresco;

Créer le mot de passe de l’utilisateur :

 prompt_postgres# ALTER USER alfresco WITH ENCRYPTED PASSQORD 'alfresco'; 

Donner les droits à l’utilisateur sur la base de données :

 prompt_postgres# GRANT ALL ON DATABASE alfresco TO alfresco;

Voilà, nous avons terminé l’initialisation de postgresql.

Pour sortir du pormp_postgres :

 prompt_postgres# q

Initialisation d’Alfresco

Comme dit précédemment Alfresco par défault ne contient pas la gestion de la base de donnée PostgreSQL. Par conséquent, il vous faudra effectuer quelques manipulation.

Installation du driver java de postgresSQL

Vous devez aller à l’adresse suivante (http://jdbc.postgresql.org/download.html) pour récupérer le bon driver jdbc, celui-ci doit correspondre à 2 points :

  1. A votre version de PostgreSQL
  2. A votre version de java (attention Alfresco ne fonctionne pas bien avec openJDK, il faut utiliser le java de SUN).

Le fichier doit être copier : « dossier_installation-Alfresco/tomcat/lib/ »

Pour information, dans ce dossier, vous trouverez entre autres le jdbc de Mysql.

Paramétrage des « properties » pour la prise en charge le PostgreSQL

Les modifications sont à effectuer dans le fichier « alfresco-global.properties« .

Depuis la version 3.2, Le fichier est situé dans le dossier : « dossier_installation-Alfresco/tomcat/shared/classes/ »

Sous la partie Mysql, après avoir commenté les lignes de Mysql, ajouter les lignes suivantes (en bleu).


#
# MySQL connection
#————-
#db.driver=org.gjt.mm.mysql.Driver
#db.url=jdbc:mysql://${db.host}:${db.port}/${db.name}
#hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect

#
# PostgreSQL connexion
#
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://${db.host}:${db.port}/${db.name}
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.query.substitutions=true TRUE, false FALSE


Installation de PostgreSQL sur Alfresco

Depuis la version 3.2x, PostgreSQL n’est plus installé par défaut dans Alfresco. Il faut, par conséquent, récupérer un package (fichier amp, postgres-3.2r.amp) alfresco pour l’intégrer. Ce package est disponible sur le site de téléchargement: http://wiki.alfresco.com/wiki/Community_Edition_file_list_32r.

Vous remarquerez que l’adresse de téléchargement n’est pas la dernière version 3.2r2 mais la 3.2r. En effet, la version 3.2r2 n’est pas encore disponible. Généralement, elle est disponible quelques semaines après la sortie de la dernière version. Cela n’est pas trop grave car la version précédente 3.2r est compatible avec la dernière version d’ALfresco la 3.2r2.

Pour finir copier le fichier téléchargé (postgres-3.2r.amp) dans le dossier amps disponible dans le répertoire d’installation d’alfresco.

Déploiement d’un package amp

Alfresco fourni un programme java permettant le déploiement des packages amp. Ce programme est appelé par un script shell disponible à la racine du dossier d’installation d’Alfresco. le fichier s’appelle apply_amps.sh.

Avant de l’executer il vous faudra mettre a jour 2 variables d’environnement (en bleu) et corriger les 2 lignes (en bleu) de traitement java en modifiant $APPSERVER par $CATALINA_HOME, sinon le traitement ne marche pas.

#!/bin/sh
# ——-
# Script for apply AMPs to installed WAR
# ——-
ALF_HOME=/opt/Alfresco
export JAVA_HOME= »/usr/lib/jvm/java/ »
export PATH=$PATH:$JAVA_HOME/bin
cd « $ALF_HOME »
export CATALINA_HOME= »$ALF_HOME »/tomcat
echo « This script will apply all the AMPs in ./amps to the alfresco.war file in $CATALINA_HOMEwebapps »
echo « Press control-c to stop this script . . . »
echo « Press any other key to continue . . . »
read RESP
#java -jar bin/alfresco-mmt.jar install ./amps $APPSERVER/webapps/alfresco.war -directory
java -jar bin/alfresco-mmt.jar install ./amps $CATALINA_HOME/webapps/alfresco.war -directory
#java -jar bin/alfresco-mmt.jar list $APPSERVER/webapps/alfresco.war
java -jar bin/alfresco-mmt.jar list $CATALINA_HOME/webapps/alfresco.war
echo « About to clean out tomcat/webapps/alfresco directory and temporary files… »
echo « Press control-c to stop this script . . . »
echo « Press any other key to continue . . . »
read DUMMY
rm -rf $CATALINA_HOME/webapps/alfresco
sh $CATALINA_HOME/bin/clean_tomcat.sh

Puis lancer le script shell. Celui-ci installera tous les package amp disponible dans le dossier amps.

prompt> ./apply_amps.sh

Penser à retirer les packages amp du dossier amps, pour ne pas les réinstaller lors d’un nouveau chargement d’un package amp..

Voilà, normalement, maintenant il vous suffit de lancer alfresco et vous aurez un super système ECM avec la base de données PostgreSQL.

A bientôt pour de nouvelle aventure …

 

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.