Recherche
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).
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 :
Pour mysql, le script sql de création des bases pourrait ressembler à :
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 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'@'%';
Sans cela, vous obtenez quelque chose comme :create language plpgsql;
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.
note
Si vous utilisez un serveur proxy il faut :
<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>
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. |
|
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 . |
MySQL |
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 |
db.schema |
Nom du schéma |
mysql |
db.url |
Chaîne de connexion à la base de données nuxeo |
jdbc:mysql://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 |
rep.type |
Type de repository de documents : |
jcr |
db.jcr.url |
Chaine de connexion à la base de données JCR (si rep.type=jcr) |
jdbc:mysql://localhost/nuxeo_storage |
db.sql.server |
Serveur de la base de données sql-storage (si rep.type=sql) |
localhost |
db.sql.port |
Port de base de données sql-storage (si rep.type=sql) |
3306 |
db.sql.db |
Nom de la base de données sql-storage (si rep.type=sql) |
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 |
|
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 |
|
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 |
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 &
Par défaut, le serveur JBOSS n'écoute que sur l'interface loop-back 127.0.0.1.
Il faut donc spécifier au lancement du serveur, un paramètre indiquant soit l'interface réseau précise sur laquelle on veut servir le Nuxeo, soit toutes les interfaces sans faire le détail, par exemple :
/opt/nuxeo/nuxeo-ep-5.2.0-RC1/bin/run.sh -b 0.0.0.0
Dans le cas de l'utilisation de la commande jbossctl, on doit donc editer ce script et le modifier en renseignant le bindhost :
BINDHOST=0.0.0.0
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
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
Consultez la page de référence à ce sujet : http://doc.nuxeo.org/5.1/books/nuxeo-book/html/admin-openoffice.html
Récupérer et installer un paquet Xvfb
par exemple, sur RedHat : yum install XFree86-Xvfb-4.3.0-69.EL.x86_64.rpm
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
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)
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