Projet esup-ecm

Recherche

Sommaire

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

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Balise Wiki
h1. Introduction
{note title=Rappel}
Sommaire
Remarque
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).

Remarque
titleNote

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 ou 6.

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.

Avertissement
titleAttention
l'utilisateur jboss doit avoir un JAVA_HOME, pointant vers un JDK, positionné dans son .basrc (ex : export

{note}

Les chapitres abordés dans la documentation d'installation sont:
{toc}

h1. Pré-requis

Nuxeo est prévu pour être installé sur une machine unix (Par              exemple Linux).
{note:title=Note}Une installation Windows est possible mais certains scripts ne                   fonctionneront pas sur cette plateforme.
{note}On s'attend à trouver sur la machine un JDK en version 5 ou 6.

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.
{warning:title=Attention}l'utilisateur jboss doit avoir un *JAVA_HOME*, pointant vers un JDK, positionné dans son *.basrc* (ex : *export JAVA_HOME=/opt/jdk1.5.0

)

...

*
)
{warning}On s'attend également à ce que *ant* soit présent sur la machine.

...



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 à :

...


{quote}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'@'%';

...


{quote}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;

...

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



{warning
:title
=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.

{warning}


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.

h1.

...

Installation

Résumé

...

 Installation


h2. 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 :

...

titlenote

Si vous utilisez un serveur proxy il faut :

...

 *export                                JAVA_HOME=/opt/jdk1.5.0*)
* Lancer la commande *ant deploy*
{note:title=note}Si vous utilisez un serveur proxy il faut :
* Pour ANT : Définir les variables d'environnements&nbsp; *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

...


{code

...

}<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>

...


{code}
{note}
* *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

...

*

h2. Paramètres du build.properties

...

Paramètre

...

Description

...

Exemple



|| Paramètre || Description \\ || Exemple \\ ||
| nuxeo.dir.parent

...

 | Répertoire  sera

...

/opt/nuxeo

...

nuxeo.url

...

 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&nbsp; (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&nbsp; *<nuxeo.dir.parent>/nuxeo-5.1.6.GA/server/default/

...

log&nbsp;&nbsp;* | /var/log/nuxeo-console.log

...

 |
| jboss.server.log

...

 | Fichier de trace du serveur jboss. Il se trouve par

...

 défaut sous&nbsp; *<nuxeo.dir.parent>/nuxeo-5.1.6.GA/server/default/

...

log&nbsp;&nbsp;* | /var/log/nuxeo.log

...

 |
| db.type

...

 | Le type de la base de données utilisée .

...

 \\
Saisir

...

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

...

db.schema

...

Nom du schéma

...

mysql
postgresql

...

db.url

...

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

...

 la valeur&nbsp; "*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&nbsp; *emulateLocators=true* permettant à compass

...

 de supporter&nbsp; les BLOBS \\ | jdbc:mysql://localhost/nuxeo?relaxAutoCommit=true&emulateLocators=true

...

 |
| db.sql.server

...

 | Serveur de la base de données sql-storage

...

localhost

 \\ | localhost |
| db.sql.port

...

 | Port de base de données sql-storage

...

 | 3306 si base mysql

...

 \\
5432

...

 si base&nbsp; 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

...

tomcat.port.http

...

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

...

8080

 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

 | 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

 | givenName |
| ldap.user.

...

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

...

sn

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

 | supannOrganisme |
| ldap.user.email

...

 | Attribut LDAP contenant

...

mail

 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

...

 

 \\ | Nom complet du logo de l'établissement \\ | |
| local.banner.background.path

...

 \\ | Nom complet de l'image de fond de la bannière

...

 

...

openoffice.home

...

 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

...

 | 8100 \\ |

h1. Lancement /arrêt du serveur JBOSS

Le serveur se lance grâce au script&nbsp; 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 :

...


{code
}
sh <nuxeo.dir.parent>/nuxeo-ep-5.2.0-RC1/bin/jbossctl start &
{code}Arrêt :

...



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

Interfaces réseau

...

{code}

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


h1.

...

 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

...

*


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

...

]

h3. Installation du serveur X virtuel

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

...

Installation OpenOffice 2.4

...

_

h3. Installation OpenOffice 2.4

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

...



&nbsp;&nbsp;&nbsp; Consultez le guide d'installation officiel : *_[http://fr.openoffice.org/Documentation/Guides/SETUP_GUIDE_FR08_1.pdf

...

]_*

Par exemple, sur un serveur RedHat :

...

Bloc de code

\\
{code}  
  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.

        

Bloc de code
ivh *.rpm
{code}

h3. &nbsp;Configuration de OpenOffice pour Nuxeo

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

_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_\\
{code}  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/   
  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/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 :                 

Bloc de code
--shared patch/nxOOoAutoListen.oxt     (permet de faire fonctionner OO en mode écoute de façon permanente)
{code}\\
\\
\\
\\
\\
\\
\\

h3. Lancement/Arret de OOo en mode serveur

&nbsp; &nbsp; &nbsp;&nbsp; Voici un exemple de script shell appelé&nbsp; *nxopenoffice* :*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_
{code} 
         #!/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

...

{code}{*}_&nbsp; &nbsp; &nbsp; Note :_* _ne pas oublier de positionner JAVA_HOME_