DOMAINE D’APPLICATION Il fut rédigé avec les versions suivantes des logiciels : - Nuxeo 5.2.0 RC1, - PostgreSQL 8.3.7-1, - Java JDK 1.6, - OpenOffice.org 3.0.1, - Windows Server 2003 Standard Edition Service Pack 2. INSTALLATION DE NUXEO INSTALLATION DE LA JDK Installer la version de la JDK disponible dans le site de Sun http://java.sun.com/javase/downloads/index_jdk5.jsp Ouvrir l’assistant d’installation et suivre les différentes étapes : Vérifier que l’installation s’est bien déroulée Ouvrez un invite de commande et saisissez la commande : Java –version Vérifier la présence des variables d’environnement : LANCEMENT DE L’INSTALLER NUXEO Téléchargez le fichier « nuxeo-ep-5.2.0-RC1-setup.exe » (disponible sur le site www.nuxeo.com/downloads/) et lancez son installation (celle-ci peut prendre plusieurs minutes). Par défaut, Nuxeo n’est accessible qu’à partir du serveur sous les adresses localhost et 127.0.0.1. Afin de le rendre accessible à partir de l’extérieur, il existe deux solutions : - Lancer Nuxeo via son run.bat en y incluant l’argument « –b 0.0.0.0 », Ouvrir le fichier « server.xml » du répertoire « NuxeoEP5\NuxeoServer\server \default\deploy\jboss-web.deployer » et modifier la ligne suivante : <Connector port="8080" address="${jboss.bind.address}" Par : <Connector port="8080" address="0.0.0.0" Vous pouvez aussi modifier son port d’écoute. INSTALLATION DE POSTGRESQL Téléchargez le fichier « postgresql-8.3.7-1-windows » (présent sur le site www.postgresql.org) et lancez son installation. Saisissez le password du futur compte root sous PostgreSQL. Saisissez le port d’ecoute de PostgreSQL (5432 par defaut). /!\ Si lors de l’installation, vous rencontrez une erreur de type : Database cluster initialisation failed Vous devez désinstaller PostgreSQL, donner le contrôle total sur le répertoire d’installation à l’utilisateur « postgres » et relancer l’installation. /!\ Si des erreurs apparaissent lors du lancement de PostgreSQL. Dans la console des services Windows, modifiez le compte executant « PostgreSQL Server 8.3 ». CONFIGURATION Connectez-vous maintenant avec l’outil « pgAdmin III » (installé avec PostgreSQL). Modifiez les propriétés de connexion au serveur en renseignant le nom d’utilisateur par « postgres ». Créez un utilisateur. Celui-ci sera utilisé par Nuxeo pour accéder à sa base de données. Créez une base de données pour Nuxeo. La nouvelle base est maintenant créée et visible sur pgAdmin III. Sur la base que vous venez de créer, lancez les requêtes SQL suivantes : CREATE LANGUAGE 'plpgsql'; CREATE FUNCTION pg_catalog.text(integer) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int4out($1));'; CREATE CAST (integer AS text) WITH FUNCTION pg_catalog.text(integer) AS IMPLICIT; COMMENT ON FUNCTION pg_catalog.text(integer) IS 'convert integer to text'; CREATE FUNCTION pg_catalog.text(bigint) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int8out($1));'; CREATE CAST (bigint AS text) WITH FUNCTION pg_catalog.text(bigint) AS IMPLICIT; COMMENT ON FUNCTION pg_catalog.text(bigint) IS 'convert bigint to text'; La base de données pour Nuxeo est maintenant prête. Par défaut, PostgreSQL est accessible qu’en local. Pour vous permettre d’y accéder à partir d’un poste client (via pgAdmin III par exemple). Vous devez ouvrir des adresses sous PostgreSQL. Modifiez le fichier « pg_hba.conf » présent sous l’arborescence « PostgreSQL\8.3\data ». Sous la ligne : host all all 127.0.0.1/32 all all 192.168.0.0/24 md5 Rajouter : host md5 Vérifiez, dans le fichier « postgresql.conf » (sous « ») que cette ligne est bien décommentée : listen_addresses = '*' Relancez le serveur, celui-ci devrait être accessible à partir de votre réseau local. NUXEO AVEC POSTGRESQL CONNEXION À UNE BASE POSTGRESQL Par défaut, Nuxeo utilise une base de données Derby. Celle-ci est inutilisable dans un environnement de production. Nous allons utiliser la base PostgreSQL que nous venons de créer. Modifiez le fichier « default-repository-ds.xml » du répertoire « NuxeoEP5\NuxeoServer\server \default\deploy\nuxeo.ear\datasources » : <config-property name="xaDataSource" type="java.lang.String">org.postgresql.xa.PGXADataSource</configproperty> <config-property name="property" type="java.lang.String">ServerName=localhost</config-property> <config-property name="property" type="java.lang.String">PortNumber/Integer=5432</config-property> <config-property name="property" type="java.lang.String">DatabaseName=[Nom_BD_PostgreSQL]</configproperty> <config-property name="property" type="java.lang.String">User=[Nom_User_PostgreSQL]</config-property> <config-property name="property" type="java.lang.String">Password=[Pass_User_PostgreSQL]</config-property> <max-pool-size>100</max-pool-size> Modifiez le fichier « default-repository-config.xml » du répertoire « NuxeoEP5\NuxeoServer\server \default\deploy\nuxeo.ear\config » Supprimez la ligne : <fulltext analyzer="org.apache.lucene.analysis.fr.FrenchAnalyzer"/> Décommentez la ligne : <fulltext analyzer="french"/> Modifiez le fichier « unified-nuxeo-ds.xml » du répertoire « NuxeoEP5\NuxeoServer\server \default\deploy\nuxeo.ear\datasources » : <local-tx-datasource> <jndi-name>NuxeoDS</jndi-name> <connectionurl>jdbc:postgresql://localhost:5432/[Nom_BD_PostgreSQL]</connection-url> <driver-class>org.postgresql.Driver</driver-class> <user-name>[Nom_User_PostgreSQL]</user-name> <password>[Pass_User_PostgreSQL]</password> <check-valid-connection-sql>;</check-valid-connection-sql> </local-tx-datasource> Modifiez le fichier « sql.properties » du répertoire « NuxeoEP5\NuxeoServer\server \default\deploy\nuxeo.ear\config ». Remplacez la ligne : org.nuxeo.ecm.sql.jena.databaseType=Derby Par : org.nuxeo.ecm.sql.jena.databaseType=PostgreSQL Nuxeo a aussi besoin du driver JDBC pour se connecter à PostgreSQL : - Si vous utilisez une version 1.6 de la JDK, vous devez télécharger le fichier « postgresql-8.3- 604.jdbc4.jar », - Pour les versions antérieures à la JDK 1.6, il faut récupérer le fichier « postgresql-8.3604.jdbc3.jar ». Ces 2 connecteurs sont disponibles sur le site de PostgreSQL (http://jdbc.postgresql.org). Placer le fichier «postgresql-8.3-604.jdbcX.jar» dans le répertoire « NuxeoEP5\NuxeoServer\server \default\lib». Relancez Nuxeo (la création des tables sous PostgreSQL peut être légèrement longue). OPTIMISATION DE NUXEO LANCEMENT AU DEMARRAGE Par défaut, Nuxeo n’est pas configuré comme étant un service Windows lancé au démarrage. Dans l’invite de commandes, saisissez : services.msc Recherchez le service Nuxeo5 et paramétrez-le sur un démarrage automatique. REDIMENSIONNER NUXEO Il faut maintenant redimensionner Nuxeo dans le cas d’une mise en production. Modifiez le fichier « server.xml » du répertoire « NuxeoEP5\NuxeoServer\server \default\deploy\jbossweb.deployer » Remplacez les valeurs des attributs maxThreads (250 -> 25) et acceptCount (100 -> 200). PARAMETRER LES LOGS JBOSS Les logs complets de JBoss peuvent devenir très importants, il faut limiter leurs enregistrements pour les messages d’alerte ou d’erreur et organiser une rotation. Modifiez le fichier « jboss-log4j.xml » présent dans le répertoire « NuxeoEP5\NuxeoServer\server \default\conf ». Commentez la partie « A time/date based rolling appender » et décommentez la partie « A size based file rolling appender ». <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender"> <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> <param name="File" value="${jboss.server.log.dir}/server.log"/> <param name="Append" value="false"/> <param name="Threshold" value="WARN"/> <param name="MaxFileSize" value="10MB"/> <param name="MaxBackupIndex" value="3"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> </layout> </appender> Par exemple, 3 fichiers de logs de 10mo chacun enregistrant que les messages d’alerte ou d’erreur. PARAMETRER LES MÉSSAGES JMS Nous allons configurer la non persistance des messages JMS afin d’augmenter les performances du serveur. Dans le répertoire « NuxeoEP5\NuxeoServer\server\default\deploy\jms », renommez le fichier « hsqldbjdbc2-service.xml » en « null-persistence-service.xml ». Dans ce fichier, supprimez toute la balise (et son contenu) suivante : <mbean code="org.jboss.mq.pm.jdbc2.PersistenceManager" … > […] </mbean> Et remplacez le par : <mbean code="org.jboss.mq.pm.none.PersistenceManager" name="jboss.mq:service=PersistenceManager"> </mbean> Dans le répertoire « NuxeoEP5\NuxeoServer\server\default\deploy\jms » : - Créez le fichier « file-state-service.xml », Supprimez le fichier « hsqldb-jdbc-state-service.xml ». Dans le fichier « login-config.xml » présent sous l’arborescence « NuxeoEP5\NuxeoServer\server\default\conf », décommentez le passage « Security domain for JBossMQ when using file-state-service.xml » : <application-policy name = "jbossmq"> <authentication> <login-module code = "org.jboss.mq.sm.file.DynamicLoginModule" flag = "required"> <module-option name = "unauthenticatedIdentity">guest</moduleoption> <module-option name = "sm.objectname">jboss.mq:service=StateManager</module-option> </login-module> </authentication> </application-policy> Et commentez / supprimez le passage « Security domain for JBossMQ ». Relancez Nuxeo