Installer Alfresco avec Debian / Tomcat / Postgres


Ce tutoriel détaille le processus d’installation d’Alfresco Labs 3 sur une machine Debian Etch en se basant sur la version packagée de Tomcat.

Prérequis

Avant d’installer Alfresco, il faut préparer les éléments suivants :

  • Disposer d’une Debian Etch (ça va mieux en le disant :)), connectée à Internet. Nous partons du principe que la machine est vierge et que vous n’avez rien installé dessus.
  • Télécharger la version d’Alfresco Labs disponible sur le Wiki d’Alfresco et placez-la dans votre répertoire personnel (~/)
  • Prendre un papier et un stylo pour noter les paramètres qui seront utiles au moment de l’installation.

Voici les paramètres que nous allons utiliser le long de ce guide :

  • DB_HOST : La machine sur laquelle se trouve votre base de données PostgreSQL
  • DB_USER : L’utilisateur qui se connecte à la base Postgres ( »alfresco » par défaut)
  • DB_NAME : Le nom de la base de données qui hébergera les données d’Alfresco ( »alfresco » semble être un choix raisonnable)
  • DB_PASSWORD : Son mot de passe ( »toto » dans notre cas)
  • DATA_PATH : Le chemin dans lequel vous allez stocker les données d’Alfresco. Nous utiliserons /var/lib/alfresco.
  • TOMCAT_HOST : La machine sur laquelle nous allons installer Alfresco / Tomcat
  • TOMCAT_PORT : Le port sur lequel Tomcat va tourner (8080 par défaut sous Debian)

Remarque : Pour des raisons de convenance personnelle, j’utilise sudo plutôt que de me connecter avec le compte root de la machine. Je vous invite à faire de même, mais c’est un point de détail. Je considère dans ce guide que toutes les manipulations, sauf avis contraires, sont effectuées avec le compte root.

Mise à jour des paquets

Les paquets dont nous avons besoin pour l’installation ne sont pas tous disponibles lors d’une installation par défaut de Debian Etch. Éditez donc le fichier /etc/apt/sources.list pour ajouter la possibilité de télécharger des packets pas Open-Source :

deb http://ftp.fr.debian.org/debian/ etch main non-free
deb http://security.debian.org/ etch/updates main contrib non-free

Puis mettez à jour la liste des paquets :

apt-get update

Base de données

Alfresco peut fonctionner avec un grand nombre de bases de données. La documentation officielle insiste sur MySQL, nous allons donc, par esprit de contradiction, nous intéresser à Postgres. Nous installerons la version 7.4, mais, à ma connaissance, le processus est strictement le même pour l’installation de la 8.1, qui marche tout aussi bien avec Alfresco.

Si vous disposez déjà d’une instance de Postgres sur la même machine ou sur une autre, connectez-vous sur cette machine et ignorez la ligne suivante.

apt-get install postgresql-7.4

Il faut maintenant créer un utilisateur et une base de données pour héberger les données d’Alfresco. Rappel : Si vous utilisez une autre installation de Postgres, ces manipulations doivent être effectuées depuis l’autre machine.

su - postgres
postgres:~$ createuser alfresco Le nouvel utilisateur a-t'il le droit de créer des bases de données ? (o/n) n Le nouvel utilisateur a-t'il le droit de créer des utilisateurs ? (o/n) n CREATE USER postgres:~$ createdb -O alfresco -E UNICODE alfresco CREATE DATABASE
postgres:~$ psql -d alfresco -c "ALTER USER alfresco WITH PASSWORD 'toto'"
ALTER USER

N’oubliez pas évidemment de remplacer « toto » ci-dessus par le mot de passe que vous souhaitez réellement utiliser.

Il faut maintenant préciser que la base Postgres pourra être accédée au travers du réseau. Dans /etc/postgres/7.4/main/postgresql.conf, positionnez la ligne suivante :

tcpip_socket = true

Installation de Tomcat

Nous pouvons maintenant installer le JDK de Java et Tomcat.

apt-get install sun-java6-jdk
apt-get install tomcat5.5
/etc/init.d/tomcat5.5 stop # Pour gagner du temps à l'installation 

Décompressez le .tar.gz d’Alfresco Labs dans un répertoire temporaire et installez Alfresco et Alfresco Share.

cd /tmp
tar -xzvf ~/alfresco-labs-war-3Stable.tar.gz
cp /tmp/alfresco.war /var/lib/tomcat5.5/webapps
cp /tmp/share.war /var/lib/tomcat5.5/webapps
/etc/init.d/tomcat5.5 start

À partir de ce moment, Alfresco est installé. Le plus dur reste à faire : configurer Alfresco, Alfresco Share et tous les éléments sans lesquels vous ne parviendrez pas à le faire fonctionner.

Pour vérifier que tout s’est bien passé, regardez si les répertoires « alfresco » et « share » ont été créés dans /var/lib/tomcat5.5/webapps au moment du démarrage de Tomcat.

Configuration d’Alfresco

Configuration de la base de données

Avant de nous attaquer à la configuration de la base de données, il faut déjà installer le driver Postgres pour Java. C’est relativement simple.

apt-get install libpg-java

Fichiers de configuration d’Alfresco

Les fichiers de configuration d’Alfresco ne sont pas déployés lors du démarrage de Tomcat. Il faut donc le faire à la main.

mkdir /var/lib/tomcat5.5/shared/classes/alfresco
cp -r /tmp/extensions/* /var/lib/tomcat5.5/shared/classes/alfresco
chown -R tomcat55:nogroup /var/lib/tomcat5.5/shared/classes/alfresco

Il va maintenant falloir éditer les fichiers de configuration pour faire fonctionner correctement Alfresco. Éditez le fichier /var/lib/tomcat5.5/shared/classes/alfresco/extension/custom-repository.properties et éditez / modifiez le lignes suivantes (attention, lisez attentivement le fichier pour ne pas doubler les lignes) :

dir.root=/var/lib/alfresco
db.username=alfresco
db.password=toto
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://localhost:5432/alfresco

Replacez « localhost » par DB_HOST et « alfresco » par DB_NAME s’il y a lieu. Vérifiez que le numéro du port de Postgres est correct (c’est bien 5432 par défaut).

Certaines des lignes ci-dessus étaient commentées (précédées par « # ») : dé-commentez-les. Commentez la partie « Derby connexion ». Seules les lignes mentionnées ci-dessus doivent être non commentées !

Dans le même répertoire, éditez custom-hibernate-dialect.properties. Commentez tout le fichier sauf les deux lignes suivantes (elles se trouvent normalement à la toute fin du fichier) :

hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.query.substitutions=true TRUE, false FALSE

Il faut penser à modifier le fichier /var/lib/tomcat5.5/webapps/alfresco/WEB-INF/classes/log4j.properties pour assurer un log correct des opérations d’Alfresco :

log4j.appender.File.File=/var/log/alfresco/alfresco.log



Et bien sûr créez le répertoire adequat :

mkdir /var/log/alfresco
chown tomcat55:nogroup /var/log/alfresco

Création du répertoire de données

Créez le répertoire DATA_PATH :

mkdir /var/lib/alfresco
chown tomcat55:nogroup /var/lib/alfresco 

Configuration des options de démarrage de Tomcat

Les options de démarrage de Tomcat ne permettent pas de faire fonctionner correctement Alfresco. Il faut donc modifier /etc/init.d/tomcat5.5 et modifier les lignes suivantes pour débrayer le Security Manager de Tomcat et pour augmenter la mémoire mise à disposition du Alfresco :

TOMCAT5_SECURITY=no
# ...
        CATALINA_OPTS="-Djava.awt.headless=true -Xmx1024M -XX:MaxPermSize=256m"
# ... 

Les valeurs de gestion de la mémoire doivent être en tous les cas inférieures à la mémoire physique disponible sur votre machine (sinon tomcat va swapper sans arrêt et Alfresco sera inutilisable). L’option « MaxPermSize » permet d’éviter certaines erreurs de mémoire que j’ai pu rencontrer en faisant cohabiter Alfresco et Jira.

Installation des programmes additionnels

En théorie, Alfresco devrait fonctionner comme cela. Mais pour en profiter pleinement, il faut installer les programmes et librairies sur lesquels il se base notamment pour effectuer des conversions de documents.

apt-get install imagemagick
apt-get install xfvb xfonts-base

(TODO : ÉCRIRE LA PROCÉDURE POUR pdf2swf ET POUR Open-Office)

Il faut indiquer à Alfresco où se trouvent ces programmes. Éditez /var/lib/tomcat5.5/webapps/alfresco/WEB-INF/classes/alfresco/repository.properties :

dir.root=/var/lib/alfresco
img.root=/usr
img.dyn=${img.root}/lib
img.exe=${img.root}/bin/convert
swf.exe=./bin/pdf2swf

On en profite pour modifier une autre option dans ce fichier qui permet de reconstruire automatiquement l’index en cas d’erreur :

index.recovery.mode=AUTO

Test de l’interface

Vous pouvez maintenant vous connecter avec votre navigateur : http://localhost:TOMCAT_PORT/alfresco

L’accès par défaut est admin/admin ; Changez-le immédiatement !

CIFS

Pour configurer les protocoles additionnels tels que CIFS/SMB (qui permettent un accès au repository Alfresco comme s’il s’agissait d’un filesystem) ou FTP, éditez le fichier suivant :

Comme Tomcat s’exécute avec un utilisateur non privilégié, vous ne pouvez pas utiliser le port standard (445) pour faire tourner votre serveur CIFS. Il faut, à la place, décommenter les lignes suivantes dans /var/lib/tomcat5.5/webapps/alfresco/WEB-INF/classes/alfresco/file-servers.xml :

<tcpipSMB port="1445" platforms="linux,solaris,macosx"/> 
<netBIOSSMB sessionPort="1139" namePort="1137" datagramPort="1138" platforms="linux,solaris,macosx"/>

Pour accéder au serveur, utilisez depuis Windows : \\server:1445\Alfresco. Il ne reste plus qu’à « mapper » le port 445 vers le port 1445 (avec iptables par exemple) pour se débarrasser du « :1445″ dans la chaîne de connexion – mais c’est une autre histoire.

Configuration Alfresco Share

Pour configurer Alfresco Share, il faut simplement indiquer à Share un moyen de communiquer avec Alfresco : il faut renseigner le nom d’hôte (localhost dans notre cas) et surtout le numéro du port sur lequel se font les échanges avec Alfresco. Éditez le fichier /var/lib/tomcat5.5/webapps/share/WEB-INF/classes/alfresco$ sudo vi webscript-framework-config.xml et remplacez toutes les instances de 8080 par le numéro du port sur lequel Tomcat tourne (en général : 8080 ou 8180, c’est le premier par défaut sous Debian, de mémoire).

Vous vous connectez ensuite à Alfresco Share par l’URL suivante :

http://localhost:ALFRESCO_PORT/share

Et maintenant ?

Et voilà, Alfresco est installé !

Ce guide est légèrement incomplet (manque la partie OpenOffice et PDF2SWF) et il me reste quelques problèmes techniques à résoudre (problème du port de CIFS), mais cela devrait vous mettre le pied à l’étrier.

N’hésitez pas à me dire si vous remarquez des erreurs dans ce guide ou souhaitez préciser certains points.

Bonne installation !

Référence

Voici une liste de liens utiles, pour référence ou pour aller plus loin :

, ,

  1. #1 by Pierre-Julien Grizel on 2 juin 2009 - 9:09

    Petit rajout, donc : voici la procédure pour mapper le port 445 vers 1445.
    Lancez les deux commandes suivantes en root :

    iptables -A INPUT -p tcp –dport 445 -j ACCEPT
    iptables -A PREROUTING -t nat -p tcp –dport 445 -j REDIRECT –to-port 1445

    Et voilà ! Vous pouvez maintenant utiliser le serveur CIFS sans problème.

  2. #2 by sohaib on 23 juillet 2009 - 11:33

    merci baucoup pour cette explication

(ne sera pas publié)

Search engine optimization by SEO Design Solutions