Recherche

Sommaire

Pages enfant
  • Installation de ESUP-ECM (Obsolète)

Vous regardez une version antérieure (v. /wiki/pages/viewpage.action?pageId=5210175) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 68) afficher la version suivante »

Rappel : Esup-ECM correspond à un packaging de Nuxeo permettant de faciliter son installation et sa configuration par rapport aux besoins ressentis dans le projet Esup-ECM.Aussi installer Esup-ECM correspond bel et bien à installer Nuxeo (Esup-ECM donne des orientations dans les possibilités de configurations offertes par Nuxeo).

Pré-requis

Nuxeo est prévu pour être installé sur une machine unix (Par exemple Linux).

Note

Une installation Windows est possible mais certains scripts ne fonctionneront pas sur cette plateforme.

On s'attend à trouver sur la machine un JDK en version 5 (La version 6 n'est pas encore officiellement supportée par nuxeo).

Nuxeo fonctionne avec un serveur d'applications JBOSS (livré avec le package ESUP-ECM). Nous recommandons de créer un utilisateur dédié (par exemple jboss) qui sera utilisé pour faire faire tourner JBOSS.

Attention

l'utilisateur jboss doit avoir un JAVA_HOME, pointant vers un JDK en version 5, positionné dans son .basrc (ex : export JAVA_HOME=/opt/jdk1.5.0
)

On s'attend également à ce que ant et maven soient présents sur la machine. De plus, maven doit être présent dans le path (exemple, si besoin, de positionnement du path : export PATH=$PATH:/opt/apache-ant-1.7/bin:/opt/apache-maven-2.0.9/bin)

De même, Nuxeo nécessite une base de données transactionnelle avec un mécanisme de sauvegarde en ligne. Il est conseillé d'utiliser un serveur permettant de sauvegarder/restaurer les données de façon incrémentale.Pour cette raison, cette version de ESUP-ECM est préconfigurés pour PostgreSQL.
Avec Nuxeo 5.1.6 (utilisé dans EsupEcm jusqu'à la version 0.3.1 d'Esup-Ecm), la version 8.3 n'était pas encore officiellement supportée par Nuxeo, on conseillait alors l'utilisation d'un serveur postgreSQL en version 8.1 ou 8.2.
A partir de la version 5.2 de Nuxeo (0.4 pour Esup-Ecm), il faut désormais priviligier une base de données 8.3.4+.

Mêle si Nuxeo recommande/privilégie l'utilisation de PostgreSQL, Nuxeo fonctionne aussi avec mysql . Dans ce cas, il est nécessaire d'utiliser le service de gestion des transactions InnoDB.
Vérifiez la présence de la ligne suivante dans my.cnf : default-storage_engine = innodb

Nous recommandons de créer deux bases :

  • Une base pour la gestion du repository des documents : nuxeo_storage
  • Une base pour tous les autres besoins (indexation,recherche,gestion des relations,...)   de la solution : nuxeo

Pour mysql, le script sql de création des bases pourrait ressembler à :

create user nuxeo;
set password for 'nuxeo'@'%' = password('XXXXX');
create database `nuxeo` default character set utf8 collate utf8_general_ci;
grant all privileges on nuxeo.* to 'nuxeo'@'%';
create database `nuxeo_storage` default character set utf8 collate utf8_general_ci;
grant all privileges on nuxeo_storage.* to 'nuxeo'@'%';

Pour PostgreSQL (depuis Nuxeo 5.2), en plus de créer la Base, il vous faut également sur la base de données qui contiendra le repository (nuxeo_storage ici) exécuter cette requête :

create language plpgsql;

Sans cela, vous obtenez quelque chose comme :
org.postgresql.util.PSQLException: ERREUR: le langage « plpgsql » n'existe pas

Pour vous aider à persuader vos chefs ou collaborateurs de ne pas utiliser MySQL avec Nuxeo

10 bonnes raisons pour ne pas utiliser MySQL avec Nuxeo :
(Message de nuxeo-dev du 4 mai 2009)
Drawbacks of MySQL when used with Nuxeo:
- loses connections when it decides to,
- poor fulltext support,
- no transactional fulltext tables,
- inefficient ACL checking due to lack of array datatypes,
- no sub-second time datatypes,
- foreign key on delete cascade operations limited to 15 levels deep,
- triggers not activated by cascaded foreign key actions (which we don't use at the moment with MySQL but could prove a big limitation in the future),
- poor query optimizer,
- (not directly nuxeo related) stupid nonstandard syntax, stupid datatypes conversions and lack of proper value checking.
All in all, MySQL should be avoided if you want to keep your sanity, you never know what's going to happen when you do a perfectly normal SQL operations. Please use PostgreSQL instead.

L'utilisation du serveur Open Office est recommandée . Ce serveur (et son patch nuxeo) transforme à la volée les documents (de tout format) en format pdf.

Son installation est détaillée dans cette page.

Installation

Résumé

  • Télécharger esup-ecm-<version>.zip depuis le site du projet
  • Décompresser le fichier dans un répertoire de travail
  • Copier le fichier build-example.properties en build.properties
  • Adapter le contenu du fichier build.properties. Cf. paragraphe suivant pour plus d'informations.
  • Positionner JAVA_HOME (ex : export JAVA_HOME=/opt/jdk1.5.0)
  • Lancer la commande ant deploy

    note

    Si vous utilisez un serveur proxy il faut :

    • Pour ANT : Définir les variables d'environnements  export ANT_OPTS="-Dhttp.proxyHost=proxy-host.domain.org -Dhttp.proxyPort=1234" pour les téléchargements initiaux.
    • Pour MAVEN : Editer le fichier .m2/settings.xml contenu dans votre home_dir
      <settings>
         <proxies>
            <proxy>
               <active>true</active>
               <protocol>http</protocol>
               <host>proxy-host.domain.org</host>
               <port>1234</port>
               <nonProxyHosts>*.univ.fr|localhost</nonProxyHosts>
            </proxy>
         </proxies>
      </settings>
      
  • Créer l'utilisateur défini par la valeur de jboss.user
  • Attribuer les droits d'exécution aux shells sous <nuxeo.dir.parent>/nuxeo-ep-5.1.6.GA/bin
  • Lancer le serveur par sh <nuxeo.dir.parent>/nuxeo-ep-5.1.6.GA/bin/jbossctl start &
  • Tester http://<nomServeur>:<portHttpToncat>/nuxeo

Paramètres du build.properties

Paramètre

Description

Exemple

nuxeo.dir.parent

Répertoire où sera déployé l'application

/opt/nuxeo

nuxeo.url

URL utilisé pour les interactions avec CAS lors de différentes actions (login, logout). Le port correspond à tomcat.port.http si tomcat est utilisé directement. En cas d'utilisation d'un frontal apache, le port à utiliser ici est celui du frontal.

http://localhost:8080/nuxeo

jboss.bind.address

Interface réseau sur laquelle le serveur JBOSS écoute  (0.0.0.0 pour écouter sur toutes les interfaces) Voir plus bas section "Interfaces réseau"

147.127.96.21

jboss.console.log

Fichier de trace de la console jboss. Il se trouve par défaut sous  <nuxeo.dir.parent>/nuxeo-5.1.6.GA/server/default/log  

/var/log/nuxeo-console.log

jboss.server.log

Fichier de trace du serveur jboss. Il se trouve par défaut sous  <nuxeo.dir.parent>/nuxeo-5.1.6.GA/server/default/log  

/var/log/nuxeo.log

db.type

Le type de la base de données utilisée .
Saisir la valeur  "MySQL" pour mysql, "PostgreSQL" pour postgresql

MySQL
PostgreSQL

db.user

Nom de l'utilisateur pouvant lire et écrire dans les bases de données

 

db.password

Mot de passe conrespondant à l'utilisateur défini par db.user

e-%truc!

db.driver

Nom de la classe java du driver JDBC

com.mysql.jdbc.Driver

org.postgresql.Driver

db.schema

Nom du schéma

mysql
postgresql

db.url

Chaîne de connexion à la base de données nuxeo

jdbc:mysql://localhost/nuxeo

jdbc:postgresql://localhost/nuxeo

db.mysql.jena.url

Particularité mysql : le paramètre relaxAutoCommit=true permet d'éviter les messages d'erreur lors des transactions quand autocommit=true

jdbc:mysql://localhost/nuxeo?relaxAutoCommit=true

db.mysql.compass.url

Particularité mysql : idem paramètre précédent avec en plus  emulateLocators=true permettant à compass de supporter  les BLOBS

jdbc:mysql://localhost/nuxeo?relaxAutoCommit=true&emulateLocators=true

db.sql.server

Serveur de la base de données sql-storage

localhost

db.sql.port

Port de base de données sql-storage

3306 si base mysql
5432 si base  postgresql

db.sql.db

Nom de la base de données sql-storage

nuxeo_storage

db.sql.user

Utilisateur de la base de données sql-storage (si rep.type=sql)

 

db.sql.password

Mot de passe correspondant à l'utilisateur de la base de données sql-storage (si rep.type=sql)

 

jdk.home

Chemin d'accès au JDK

/opt/jdk1.5.0

jboss.user

Nom de l'utilisateur qui lancera le serveur d'application jboss

jboss

tomcat.port.http

port HTTP utilisé par le tomcat embarqué par jboss pour répondre aux requêtes HTTP

8080

tomcat.port.jk

port AJP utilisé par le tomcat embarqué par jboss pour répondre aux requêtes AJP (utilisé dans le cas de l'utilisation d'un frontal apache)

9554

cas.url

URL d'accès au serveur CAS de l'établissement

https://sso.univ.fr

ldap.url

URL d'accès au serveur LDAP de référence

ldap://ldap.univ.fr:389

ldap.user.searchBaseDn

Base DN utilisé lors des recherches d'utilisateurs dans le LDAP

ou=people,dc=univ,dc=fr

ldap.user.firstName

Attribut LDAP contenant le nom des l'utilisateurs

givenName

ldap.user.lastName

Attribut LDAP contenant le nom complert à afficher pour les l'utilisateurs

sn

ldap.user.company

Attribut LDAP contenant l'organisme de rattachement des utilisateurs

supannOrganisme

ldap.user.email

Attribut LDAP contenant l'adresse électronique des utilisateurs

mail

ldap.user.defaultAdministratorId

UID de l'administrateur de la plateforme


ldap.group.searchBaseDn

Base DN utilisé lors des recherches de groupes dans le LDAP

ou=groups,dc=univ,dc=fr

local.logo.path

Nom complet du logo de l'établissement

 

local.banner.background.path

Nom complet de l'image de fond de la bannière supérieure

 

openoffice.home

Répertoire d'installtion du serveur Open Office

/opt/openoffice

openoffice.port

Port d'écoute du serveur Open Office

8100

Lancement /arrêt du serveur JBOSS

Le serveur se lance grâce au script  run.sh et s'arrête avec shutdown.sh, tous deux présents dans le répertoire d'installation (nuxeo.dir.parent/ du build.properties).

Ces scripts sont appelés par la commande jbossctl

Démarrage :

sh <nuxeo.dir.parent>/nuxeo-ep-5.2.0-RC1/bin/jbossctl start &

Arrêt :

sh <nuxeo.dir.parent>/nuxeo-ep-5.2.0-RC1/bin/jbossctl stop &

Interfaces réseau

La valeur par défaut 0.0.0.0 du paramètre jboss.bind.address décrit plus haut, permet d'écouter sur toutes les interfaces.

Pour restreindre l'écoute à une interface précise, il faut préciser l'IP à utiliser. Si Nuxeo est derrière un frontal Apache, il faut s'assurer que l'IP indiquée corresponde à celle du VirtualHost.

En l'absence de valeur pour ce paramètre, le serveur n'écoutera que sur le loop back (127.0.0.1).

Logs du serveur

Les logs du serveur sont par défaut générés dans <nuxeo.dir.parent>/nuxeo-ep-<nuxeo-version>/server/default/log/server.log

Cet emplacement est modifiable par le paramètre jboss.server.logdécrit plus haut.

On peut modifier la façon dont vont être générés les logs par le fichier <nuxeo.dir.parent>/nuxeo-ep-<nuxeo-version>/server/default/conf/jboss-log4j.xml

Installation du serveur Open Office

Consultez la page de référence à ce sujet : http://doc.nuxeo.org/5.1/books/nuxeo-book/html/admin-openoffice.html

Installation du serveur X virtuel

   Récupérer et installer un paquet Xvfb
   par exemple, sur RedHat :  yum install XFree86-Xvfb-4.3.0-69.EL.x86_64.rpm

Installation OpenOffice 2.4

    Il est conseillé d'installer la version 2 de openOffice.

    Consultez le guide d'installation officiel : http://fr.openoffice.org/Documentation/Guides/SETUP_GUIDE_FR08_1.pdf

Par exemple, sur un serveur RedHat :

  
  cd /tmp
  wget http://openoffice.cict.fr/stable/2.4.2/OOo_2.4.2_LinuxIntel_install_en-US.tar.gz_
  tar -zxvf OOo_2.4.2_LinuxIntel_install_en-US.tar.gz
  cd OOH680_m18_native_packed-1_en-US.9364/RPMS/
  rpm -ivh *.rpm

 Configuration de OpenOffice pour Nuxeo

     Deux extensions Nuxeo permettent de configurer OpenOffice en mode serveur de façon permanente.

        

  cd <path/to/esup-ecm>/esup-ecm-0.3
  svn co http://svn.nuxeo.org/nuxeo/tools/ooo-package/linux nxOOo
  cd nxOOo
  cp patch/bootstraprc <path/to/openoffice>/program/   
  <path/to/openoffice>/program/unopkg add --shared patch/nxSkipInstallWizard.oxt (permet d'utiliser OO tout de suite après l'installation)
  <path/to/openoffice>/program/unopkg add --shared patch/nxOOoAutoListen.oxt     (permet de faire fonctionner OO en mode écoute de façon permanente)








Lancement/Arret de OOo en mode serveur

       Voici un exemple de script shell appelé  nxopenoffice :                 

 
         #!/bin/sh
         #
         # chkconfig: 345 97 1
         # description: this shell script takes care of starting and stopping
         # openoffice server.

          case "$1" in

            start)
              echo "Starting openoffice: "
              Xvfb :8100 2>/dev/null &
             sleep 5
             /opt/openoffice.org2.4/program/soffice.bin -headless "-accept=socket,host=localhost,port=8100;urp;StarOffice.Service" 2>/dev/null &
             echo
           ;;

          stop)
             ps -aef|grep "program/soffice.bin" | grep -v grep|cut -c10-15 >/var/run/ooo.pid
            val=`head /var/run/ooo.pid`
             if [ -n $val ]
              then
                 kill $val 2>/dev/null && echo "Shutting down openoffice: " $val
              fi
             ps -aef|grep "Xvfb" | grep -v grep|cut -c10-15 >/var/run/xvfb.pid
             val=`head /var/run/xvfb.pid`
            if [ -n $val ]
               then
                kill $val 2>/dev/null && echo "Shutting down virtual xterm: " $val
           fi   
           echo
          ;;

          restart)
             $0 stop
             $0 start
          ;;

          status)
            echo "Servers listening on port 8100 :"
            netstat -na | grep :8100 | wc -l
            netstat -na | grep :8100
            echo "openoffice processes :"
            ps -aef | grep -i program/soffice | grep -v grep
            echo "X processes :"
            ps -ef | grep -i xvfb | grep -v grep
        ;;

      *)
          echo "Usage: nxopenoffice [start|stop|restart|status]\n"
          exit 1

      esac

     exit 0

      Note : ne pas oublier de positionner JAVA_HOME

  • Aucune étiquette