<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>XAR on Zwindler's Reflection</title><link>https://blog.zwindler.fr/tags/xar/</link><description>Recent content in XAR on Zwindler's Reflection</description><generator>Hugo -- gohugo.io</generator><language>fr</language><copyright>Licensed under CC BY-SA 4.0</copyright><lastBuildDate>Sat, 30 Apr 2016 13:30:41 +0000</lastBuildDate><atom:link href="https://blog.zwindler.fr/tags/xar/index.xml" rel="self" type="application/rss+xml"/><item><title>Résoudre les erreurs de fichiers trop gros lors des imports XWiki, XAR notamment</title><link>https://blog.zwindler.fr/2016/04/30/resoudre-erreurs-de-fichiers-gros-lors-imports-xwiki/</link><pubDate>Sat, 30 Apr 2016 13:30:41 +0000</pubDate><guid>https://blog.zwindler.fr/2016/04/30/resoudre-erreurs-de-fichiers-gros-lors-imports-xwiki/</guid><description>&lt;img src="https://blog.zwindler.fr/2015/11/1434473398.webp" alt="Featured image of post Résoudre les erreurs de fichiers trop gros lors des imports XWiki, XAR notamment" /&gt;&lt;h2 id="pourquoi-je-narrive-pas-à-uploader-mon-gros-xar"&gt;Pourquoi je n’arrive pas à uploader mon gros XAR
&lt;/h2&gt;&lt;p&gt;Cet article fait suite à &lt;a class="link" href="https://blog.zwindler.fr/2016/03/12/parametres-caches-de-xwiki-taille/" &gt;mon précédent article indiquant comment corriger les erreurs lors d’imports de fichiers XAR&lt;/a&gt; dans XWiki. J’avais un bon gros export au format XWiki (XAR donc) et j’avais plusieurs erreurs lors de l’import qui me bloquait.&lt;/p&gt;
&lt;p&gt;A la suite de l’article, j’ai reçu une réponse de Ludovic DUBOST, CEO et fondateur de XWiki SAS qui m’a donné une piste supplémentaire pour régler le problème.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Cette limite de taille du fait de la consommation mémoire est réglé dans le mode « File System Attachment » de XWiki. Il y a déjà eu des discussions pour que ce soit la configuration par défaut. Nous allons la réactiver.&lt;/p&gt;
&lt;p&gt;Pour plus d’infos sur le mode FS:&lt;br&gt;
platform.xwiki.org/xwiki/bin/view/AdminGuide/Attachments#HFilesystemAttachmentStore (lien mort, pas dispo sur Internet Archive)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="filesystem-attachment-store"&gt;Filesystem attachment store
&lt;/h2&gt;&lt;p&gt;Et oui, des fois dans la vie, il suffit de lire la documentation entière et ne pas se contenter du premier paragraphe.&lt;/p&gt;
&lt;p&gt;Dans la documentation à propos des attachements, si on va au delà de la première partie, on peut lire :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The directory in which the attachments are stored in the filesystem is defined with the parameter &lt;span class="monospace"&gt;environment.permanentDirectory in the &lt;span class="monospace"&gt;xwiki.properties file. By default it’s defined to be &lt;span class="monospace"&gt;data, which is a directory relative to where the Java Servlet Container was started. It’s recommend to modify this value to be absolute sure that you can start the Servlet Container from any directory and still have XWiki find the attachments located in this work directory.&lt;/p&gt;
&lt;p&gt;environment.permanentDirectory=/opt/tomcat6/data&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;En gros, plutôt que de fonctionner dans le mode classique avec l’ensemble des objets (pièces jointes) et donc les imports XAR en base de données, il est possible de stocker sur le filesystem local les fichiers dans une arborescence standard de type /opt/tomcatX/data.&lt;/p&gt;
&lt;p&gt;(Lien image mort)&lt;/p&gt;
&lt;p&gt;Sur le papier, cette méthode permet de s’affranchir des tailles maximales des objets envoyés en base (entre autre un pb de stream avec MySQL selon Ludovic DUBOST?). Elle apporte cependant son lot de considérations supplémentaires :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Il ne faut évidemment pas manipuler les fichiers en dehors du wiki (i.e. aller virer des fichiers directement dans le FS côté OS pour faire un peu de place. Ne faites pas les innocents, je sais que vous y pensiez)&lt;/li&gt;
&lt;li&gt;Sauvegarder la base de données ne suffira plus puisque les objets ne sont plus en base. Il faudra ajouter à votre script de sauvegarde un petit bout de script pour zipper les fichiers uploadés contenus dans le fameux dossier&lt;/li&gt;
&lt;li&gt;Basculer d’un mode à l’autre n’est pas une opération à prendre à la légère : si vous avez déjà des objets en base, il faut les récupérer pour les redéposer sur le FS.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pour la première, on va dire que je vais vous faire confiance ;). Pour la seconde aussi, vous êtes sérieux.&lt;/p&gt;
&lt;h3 id="pour-ceux-qui-sont-dans-lancien-mode-de-fonctionnement"&gt;Pour ceux qui sont dans l’ancien mode de fonctionnement
&lt;/h3&gt;&lt;p&gt;Et pour la dernière, l’équipe de XWiki met gentiment à disposition une extension pour passer automatiquement d’un mode à l’autre : &lt;a class="link" href="https://snippets.xwiki.org/xwiki/bin/view/Extension/Filesystem%20Attachment%20Porter" target="_blank" rel="noopener"
&gt;Filesystem Attachment Porter&lt;/a&gt; ! Ca tombe bien, je n’avais pas envie de le faire à la main ;-).&lt;/p&gt;
&lt;p&gt;La procédure est assez bien documentée et détaille même ce dont je viens de parler un peu plus haut (sauvegarde des répertoires, bascule dans le nouveau mode de stockage des PJ).&lt;/p&gt;
&lt;h3 id="pour-les-nouveaux-utilisateurs"&gt;Pour les nouveaux utilisateurs
&lt;/h3&gt;&lt;p&gt;Le problème ne se pose pas vraiment. Si le wiki vient d’être créé il n’y a pas encore d’objets en base. Vous pouvez simplement basculer dans le mode « Filesystem attachment » en modifiant quelques options dans le fichier &lt;strong&gt;xwiki.cfg&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;xwiki.store.attachment.hint = file
xwiki.store.attachment.versioning.hint = file
xwiki.store.attachment.recyclebin.hint = file
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="au-delà-de-ça"&gt;Au delà de ça
&lt;/h2&gt;&lt;p&gt;N’ayant pas suivi l’ensemble des discussions à propos des choix de garder le mode par défaut avec tout en base, je ne peux pas savoir ce qui a conduit à ne pas basculer dans le mode Filesystem attachment « par défaut ». Cependant, je pense qu’effectivement cela pourrait être une bonne idée de le faire, à minima pour éviter que d’autres utilisateurs continuent de poser la question sur la devlist.&lt;/p&gt;
&lt;h3 id="faq"&gt;FAQ
&lt;/h3&gt;&lt;p&gt;Également, vous auriez pu tomber sur la solution via une FAQ qui a été rédigée début 2016, probablement suite au nombre de personnes qui ont eu ce problème et qui le remontent dans la devlist (premiers résultats jusqu’à il y a peu quand on tappe le message d’erreur dans Google) :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.xwiki.org/xwiki/bin/view/FAQ/How&amp;#43;to&amp;#43;import&amp;#43;a&amp;#43;XAR&amp;#43;larger&amp;#43;than&amp;#43;100MB" target="_blank" rel="noopener"
&gt;www.xwiki.org/xwiki/bin/view/FAQ/How+to+import+a+XAR+larger+than+100MB&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Paramètre caché XWiki pour résoudre l’erreur « fichier trop gros » lors de l’import d’un XAR</title><link>https://blog.zwindler.fr/2016/03/12/parametres-caches-de-xwiki-taille/</link><pubDate>Sat, 12 Mar 2016 11:30:04 +0000</pubDate><guid>https://blog.zwindler.fr/2016/03/12/parametres-caches-de-xwiki-taille/</guid><description>&lt;img src="https://blog.zwindler.fr/2015/11/1434473398.webp" alt="Featured image of post Paramètre caché XWiki pour résoudre l’erreur « fichier trop gros » lors de l’import d’un XAR" /&gt;&lt;p&gt;[Edit]&lt;/p&gt;
&lt;p&gt;Ludovic DUBOST, CEO et fondateur de XWiki SAS m’a répondu (voir les commentaires). Le bug est connu mais &lt;em&gt;a priori&lt;/em&gt; on doit utiliser les attachements de type &lt;em&gt;Filesystem Attachment&lt;/em&gt; (pas le choix par défaut qui est le &lt;em&gt;Database Attachment&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;On trouve plus d’informations sur l’article suivant&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Attachments" target="_blank" rel="noopener"
&gt;www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Attachments&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The Filesystem attachment store saves your attachments in files in a directory tree. This means you will have one more thing to do when you back up your data but it also means you can save larger (over one gigabyte) files.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;[/Edit]&lt;/p&gt;
&lt;p&gt;Lorsque j’ai voulu importer une sauvegarde XAR un peu importante sous XWiki, je me suis retrouvé bloqué par la taille maximale des fichiers XAR que je pouvais importer. En effet par défaut, on est limité à 32 MB ce qui peut arriver rapidement avec des images/captures d’écran.&lt;/p&gt;
&lt;p&gt;Et comme on ne peut pas faire un XAR avec uniquement une partie d’un wiki, il n’y a pas trop de solutions pour réduire la taille du XAR (vous pouviez quand même jouer sur la présence de l’historique des révisions ou pas, je ne sais pas si c’est toujours le cas).&lt;/p&gt;
&lt;p&gt;[Edit]On peut faire des imports/exports plus précis avec des extensions comme LargeXARImport ou ImportExport, etc. [/Edit]&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/016_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Pour autant, modifier cette limite purement logicielle (et arbitraire), il faut passer par des pages d’administration cachées.&lt;/p&gt;
&lt;h2 id="la-solution"&gt;La solution
&lt;/h2&gt;&lt;p&gt;Pour une raison que j’ignore, on ne peut ni accéder à ce paramètre dans les pages d’administration classique du wiki ni modifier une valeur dans les fichiers de configuration.&lt;/p&gt;
&lt;p&gt;Il faut ouvrir une URL directement en mode « édition » sur les préférence du type :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;http://@IPwiki:8080/xwiki-enterprise-web-7.2/bin/&lt;strong&gt;edit/XWiki/XWikiPreferences?editor=object&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si vous êtes au bon endroit, cela devrait ressembler à ça :&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/017_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Cliquez sur la liste « XWikiPreferences 0 » **juste en dessous **de la ligne « XWiki.XWikiPreferences (1) ». Pas évident évident&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/03/xwiki_uploadpng.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;On y retrouve également des valeurs comme le serveur SMTP ou le serveur LDAP qu’on a paramétré côté xwiki.cfg, bizarrement ?&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/018_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Modifiez le paramètres à la hausse pour correspondre à votre taille de fichier XAR, puis cliquez sur « Enregistrer et Fermer » pour valider.&lt;/p&gt;
&lt;p&gt;Dans mon cas (PostgreSQL), ça marche, pas besoin de modifications supplémentaires, juste un redémarrage de tomcat.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/019_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;h2 id="et-la-base-de-données-"&gt;Et la base de données ?
&lt;/h2&gt;&lt;p&gt;Pour autant, vous pourriez quand même avoir des ennuis si jamais votre base de données n’accepte pas les fichiers trop gros elle aussi, comme par exemple MySQL/MariaDB. Vous trouverez plus d’informations sur le sujet dans ce &lt;a class="link" href="https://web.archive.org/web/20211129081936/http://lists.xwiki.org/pipermail/users/2012-February/022047.html" target="_blank" rel="noopener"
&gt;topic de la mailing list (lien mort, j&amp;rsquo;utilise Internet Archive)&lt;/a&gt; :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Pay also attention that your DB configuration could prevent you from uploading such a package. For exemple, with Mysql, you have to fix the value of max_allowed_packet in my.cnf file. If you want to upload a package of 35 MB for example, you need the value max_allowed_packet to be at least « 75M ».&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Je ne suis pas certain de comprendre pourquoi il faut mettre max_allowed_packet à 75M pour un fichier de 35 MB. Visiblement il y a un coefficient x2 ?&lt;/p&gt;
&lt;h2 id="mais-ça-ne-marche-toujours-pas"&gt;Mais ça ne marche toujours pas
&lt;/h2&gt;&lt;p&gt;C’est fini ? Et bien non. Malheureusement, l’import de fichiers .XAR de XWiki est &lt;em&gt;a priori&lt;/em&gt; une fonctionnalité très gourmande en mémoire et plante parfois juste après la fin de la barre de transfert :&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/03/erreur_xwiki_import.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Dans le fichier de log on pourra trouver une erreur de ce gout là :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Nov 12 17:02:23 @IPxwiki server: 2015-11-12 17:02:23,152 [http://@IPxwiki:8080/xwiki-enterprise-web-7.2/bin/upload/XWiki/XWikiPreferences] WARN c.x.x.w.UploadAction - Saving uploaded file failed
Nov 12 17:02:23 @IPxwiki server: Caused by: java.lang.OutOfMemoryError: Java heap space
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Bon il semblerait que ce soit un problème connu depuis au moins 2008, si on en crois &lt;a class="link" href="https://web.archive.org/web/20160904053532/http://xwiki.475771.n2.nabble.com/Java-Heap-Space-Out-of-memory-exception-td1613958.html" target="_blank" rel="noopener"
&gt;ce post (lien mort, j&amp;rsquo;utilise Internet Archive)&lt;/a&gt; et la réponse de Sergiu Dumitriu :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is a major design flaw of the current attachment storage model. As stated in a previous mail, handling attachment consumes about &lt;strong&gt;27 time the size of the attachment&lt;/strong&gt;, so 90M * 27 ~= 2.5G. This needs to be fixed ASAP. In the meantime, you can either increase the heap size to more than 2.5G, or request an sql dump from the myxwiki farm admins.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;27 FOIS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Effectivement, lorsque j’importe des XAR d’environ 60-70 Mo dans mon instance tomcat sizée à environ 2 Go, ça fonctionne, mais pas pour les fichiers de 80 Mo. La règle semble correspondre.&lt;/p&gt;
&lt;p&gt;J’écrirais un autre article pour expliquer ce qu’on peut y faire dès que j’aurai un peu plus de matière.&lt;/p&gt;
&lt;h2 id="source"&gt;Source
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Attachments" target="_blank" rel="noopener"
&gt;www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Attachments&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>[Tutoriel] Installer XWiki 7.X sur RedHat/CentOS 7 (Tomcat + PostGreSQL)</title><link>https://blog.zwindler.fr/2015/12/16/installation-de-xwiki-redhat-7/</link><pubDate>Wed, 16 Dec 2015 17:30:53 +0000</pubDate><guid>https://blog.zwindler.fr/2015/12/16/installation-de-xwiki-redhat-7/</guid><description>&lt;img src="https://blog.zwindler.fr/2015/11/1434473398.webp" alt="Featured image of post [Tutoriel] Installer XWiki 7.X sur RedHat/CentOS 7 (Tomcat + PostGreSQL)" /&gt;&lt;h2 id="xwiki-cest-quoi-"&gt;XWiki, c’est quoi ?
&lt;/h2&gt;&lt;p&gt;En entreprise, il n’est pas rare que les utilisateurs expriment leur besoin de stocker l’information de manière intelligente aux administrateurs systèmes. Ça peut passer par une GED, une plateforme de travail collaboratif, et même dans certains cas, un wiki (l’exemple le plus connu de wiki est &lt;a class="link" href="https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Accueil_principal" target="_blank" rel="noopener"
&gt;Wikipedia&lt;/a&gt;, au cas où ça ne voyez pas de quoi on parle).&lt;/p&gt;
&lt;p&gt;Comme je travaille dans l’IT, je ne suis pas encore tombé dans un contexte où un wiki n’avait pas sa place et c’était même souvent un projet pris très au sérieux.&lt;/p&gt;
&lt;p&gt;Très au sérieux, d’accord, mais quand même, le mieux serait que ça soit gratuit ! Argument que j’entends relativement souvent de la part des directions, et c’est de bonne guerre ;-).&lt;/p&gt;
&lt;p&gt;Du coup, le choix est tout de suite plus restreint. De ce que j’ai pu trouver dans le marché du gratuit et/ou opensource et pas trop confidentiel pour avoir une chance que le projet survive quelques années, j’ai trouvé :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.mediawiki.org/wiki/MediaWiki/fr" target="_blank" rel="noopener"
&gt;Mediawiki&lt;/a&gt; =&amp;gt; le logiciel sur lequel est basé Wikipedia, que j’ai utilisé à titre personnel mais qui nécessite de connaitre un peu la syntaxe pour obtenir un rendu visuel correct&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.dokuwiki.org/dokuwiki#" target="_blank" rel="noopener"
&gt;Dokuwiki&lt;/a&gt; =&amp;gt;que je n’ai pas utilisé ni même testé, mais j’ai eu de bon retours&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="http://www.xwiki.com/fr/" target="_blank" rel="noopener"
&gt;XWiki&lt;/a&gt; =&amp;gt; un logiciel en Java dont la syntaxe est proche des autres logiciels wiki mais qui dispose surtout de manière native d’un éditeur WYSIWYG (&lt;em&gt;what you see is what you get&lt;/em&gt;, autrement dit : comme word. Le resultat final est visible en temps réel)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La nécessité d’avoir un éditeur WYSIWYG étant un prérequis pour les utilisateurs, je n’ai pas vraiment cherché plus loin : &lt;strong&gt;nous avons installé XWiki&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Pour débuter, XWiki vous propose un fichier installeur sous Linux ou Windows où tout est pré-parametré avec une base de données interne et un serveur d’application web java intégré. Cependant, j’aime avoir un minimum la main sur ce que j’administre, je ne maitrise pas la base HSQLDB et j’ai eu des soucis avec les options de Jetty. C’est pourquoi j’ai préféré installer moi même le serveur de base de données PostgreSQL et le serveur java Tomcat.&lt;/p&gt;
&lt;p&gt;Je vous propose donc d’installer XWiki via le WAR, avec un serveur RedHat Entreprise Linux 7 (ou CentOS 7, c’est pareil), un serveur Tomcat 7 et une base de données postgreSQL 9.2.&lt;/p&gt;
&lt;p&gt;Ce tutoriel décrit de manière séquentielle l’ensemble des opérations nécessaires pour y parvenir, à partir des informations qu’on peut trouver dans plusieurs pages éparpillées dans la &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/InstallationWAR" target="_blank" rel="noopener"
&gt;documentation officielle&lt;/a&gt; (et avec quelques captures d’écran en bonus track).&lt;/p&gt;
&lt;h2 id="installation-de-los"&gt;Installation de l’OS
&lt;/h2&gt;&lt;p&gt;Comme indiqué plus haut, j’ai commencé par installer une machine virtuelle RedHat Entreprise Linux 7.1 au format Desktop (poste de travail). L’ensemble des prérequis sont listés dans la &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation" target="_blank" rel="noopener"
&gt;documentation officielle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Une fois que c’est réglé, on peut aller récupérer les sources &lt;a class="link" href="http://enterprise.xwiki.org/xwiki/bin/view/Main/Download" target="_blank" rel="noopener"
&gt;sur le site officiel&lt;/a&gt;. Au moment où j’ai écris ces lignes, la version Xwiki 7.2 est la version dite stable (en fait en vrai on est pas loin de la 7.4, mais j’ai tardé à publier l’article. Le principe reste le même).&lt;/p&gt;
&lt;p&gt;[EDIT 26/01/16] Attention si vous utilisez PostGreSQL, il y a &lt;a class="link" href="http://jira.xwiki.org/browse/XWIKI-13025" target="_blank" rel="noopener"
&gt;un bug en cours sur le widget qui affiche l’arborescence&lt;/a&gt;, du coup j’ai du rollback en 7.2.&lt;/p&gt;
&lt;p&gt;J’avais voulu faire la mise à jour car la 7.4 corrige un bug qui date de la version 3.X sur certains PNG qui font planter l’export PDF.&lt;/p&gt;
&lt;p&gt;[/EDIT]&lt;/p&gt;
&lt;p&gt;Récupérez les fichiers suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;xwiki-enterprise-web-7.2.war&lt;/li&gt;
&lt;li&gt;xwiki-enterprise-ui-mainwiki-all-7.2.xar&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="installation-et-configuration-de-tomcat-7"&gt;Installation et configuration de Tomcat 7
&lt;/h2&gt;&lt;p&gt;Je n’ai pas voulu installer à la main tomcat, RHEL 7 propose une version &lt;em&gt;relativement&lt;/em&gt; récente de tomcat 7 qui convient très bien dans les repository officiels.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum install tomcat
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Les instructions pour configurer Tomcat pour XWiki sont listées &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/InstallationTomcat" target="_blank" rel="noopener"
&gt;dans la page suivante&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Copiez le war dans l’arborescence &lt;strong&gt;/var/lib/tomcat/webapps&lt;/strong&gt; :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[root@monwiki webapps]# pwd
/var/lib/tomcat/webapps
[root@monwiki webapps]# ll
[...]
-rw-r--r--. 1 root root 227064164 6 nov. 15:16 xwiki-enterprise-web-7.2.war
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Passez le serveur en UTF-8 (au niveau du &lt;strong&gt;connector&lt;/strong&gt; dans &lt;strong&gt;/etc/tomcat/server.xml&lt;/strong&gt;) :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;Connector port=&amp;#34;8080&amp;#34; protocol=&amp;#34;HTTP/1.1&amp;#34; connectionTimeout=&amp;#34;20000&amp;#34; redirectPort=&amp;#34;8443&amp;#34; URIEncoding=&amp;#34;UTF-8&amp;#34; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ajoutez l’option suivante dans la configuration tomcat :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /etc/tomcat/tomcat.conf
CATALINA_OPTS=&amp;#34;-Xmx1024m -XX:MaxPermSize=192m&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ajoutez l’option suivante dans les propriétés de tomcat :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /etc/tomcat/catalina.properties
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Déployez le war en lançant une première fois le service tomcat :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl start tomcat
systemctl enable tomcat
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Vérifiez que tout se passe bien avec &lt;em&gt;tail -f /var/log/tomcat/catalina.2015-11-10.log&lt;/em&gt; #remplacer par la date du jour&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;INFOS: Deployment of web application archive /var/lib/tomcat/webapps/xwiki-enterprise-web-7.2.war has finished in 31 a 560 ms
nov. 10, 2015 4:07:47 PM org.apache.coyote.AbstractProtocol start
INFOS: Starting ProtocolHandler [&amp;#34;http-bio-8080&amp;#34;]
nov. 10, 2015 4:07:47 PM org.apache.coyote.AbstractProtocol start
INFOS: Starting ProtocolHandler [&amp;#34;ajp-bio-8009&amp;#34;]
nov. 10, 2015 4:07:47 PM org.apache.catalina.startup.Catalina start
INFOS: Server startup in 31609 ms
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Le seul inconvénient à choisir la version de tomcat présente dans les repositories est qu’un des mécanismes intégrés de scan des jar (archives java) dans cette version provoque l’apparition dans le log d’un très grand nombre de « stack trace » dans votre &lt;strong&gt;catalina.out&lt;/strong&gt; :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;GRAVE: Unable to process Jar entry [javassist/util/proxy/SerializedProxy.class] from Jar
[jar:file:/usr/share/tomcat/webapps/xwiki-enterprise-web-7.2/WEB-INF/lib/javassist-3.19.0-GA.jar!/] for annotations
java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
at org.apache.tomcat.util.bcel.classfile.Utility.swallowMethodParameters(Utility.java:797)
at org.apache.tomcat.util.bcel.classfile.Attribute.readAttribute(Attribute.java:171)
[...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Avec une version plus récente de tomcat, un warning est simplement indiqué dans le log. Cette erreur n’est pas bloquante, juste désagréable.&lt;/p&gt;
&lt;p&gt;Copiez le driver jdbc 41 (.jar) pour postgreSQL 9.2 dans &lt;strong&gt;WEB-INF/lib&lt;/strong&gt; du répertoire de XWiki dans tomcat. Vous pouvez le télécharger à l’adresse &lt;a class="link" href="https://jdbc.postgresql.org/download/" target="_blank" rel="noopener"
&gt;suivante&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;cd /var/lib/tomcat/webapps/xwiki-enterprise-web-7.2/WEB-INF/lib
chown tomcat:tomcat postgresql-9.2-1004.jdbc41.jar
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="installation-et-configuration-de-postgresql-92"&gt;Installation et configuration de PostGreSQL 9.2
&lt;/h2&gt;&lt;p&gt;La encore, j’ai préféré installer PostGreSQL par le biais des dépôts RPM plutôt que de l’installer à la main.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum install postgresql postgresql-server postgresql-jdbc
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Les informations permettant de configurer la base de données PostGreSQL pour XWiki sont disponible sur &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/InstallationPostgreSQL" target="_blank" rel="noopener"
&gt;la documentation officielle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;La première commande à passer sur la base PostGreSQL est de l’initialiser avec la commande suivante :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;postgresql-setup initdb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pour information, sur RHEL/CentOS 6, la base est en version 8.4 et pour l’initialiser il faut utiliser :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;service postgresql initdb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Personnellement j’aime ajouter un lien symbolique pour retrouver mes logs dans /var/log mais c’est totalement un choix personnel.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ln -s /var/lib/pgsql/data/pg_log /var/log/pgsql
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mdofier la sécurité pour l’authentification des utilisateurs sans utiliser les utilisateurs Unix (changer ident par md5 ou éventuellement trust) :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /var/lib/pgsql/data/pg_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 md5
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Démarrez la base de données puis créer la base qui sera dédiée au xwiki et son utilisateur associé :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl start postgresql
systemctl enable postgresql
su - postgres
createuser xwiki -S -D -R -P -Upostgres
createdb xwiki -Eunicode -Oxwiki -Upostgres
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Je vous conseille aussi de faire un petit test de connexion pour vérifier que tout est bien configuré côté authentification :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;psql -Uxwiki -h 127.0.0.1 -W
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pour information si jamais vous aviez besoin de la détruire a posteriori, la commande est :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;dropdb -Upostgres xwiki
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="configuration-de-xwiki-72"&gt;Configuration de XWiki 7.2
&lt;/h2&gt;&lt;p&gt;Maintenant qu’on dispose d’une base de données et d’un serveur d’application java, on peut commencer à configurer l’application XWiki en elle même. Configurer hibernate pour que xwiki stocke sa base sur pgsql&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /var/lib/tomcat/webapps/xwiki-enterprise-web-7.2/WEB-INF/hibernate.cfg.xml
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Supprimez les lignes liées à la base hsqldb (interne) et décommenter les lignes « PostgreSQL configuration » (en affectant les bonnes valeurs).&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;property name=&amp;#34;connection.url&amp;#34;&amp;gt;jdbc:postgresql://localhost:5432/xwiki&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;connection.username&amp;#34;&amp;gt;xwiki&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;connection.password&amp;#34;&amp;gt;VOTREMOTDEPASSE&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;connection.driver_class&amp;#34;&amp;gt;org.postgresql.Driver&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;dialect&amp;#34;&amp;gt;org.hibernate.dialect.PostgreSQLDialect&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;jdbc.use_streams_for_binary&amp;#34;&amp;gt;false&amp;lt;/property&amp;gt;
&amp;lt;property name=&amp;#34;xwiki.virtual_mode&amp;#34;&amp;gt;schema&amp;lt;/property&amp;gt;
&amp;lt;mapping resource=&amp;#34;xwiki.postgresql.hbm.xml&amp;#34;/&amp;gt;
&amp;lt;mapping resource=&amp;#34;feeds.hbm.xml&amp;#34;/&amp;gt;
&amp;lt;mapping resource=&amp;#34;activitystream.hbm.xml&amp;#34;/&amp;gt;
&amp;lt;mapping resource=&amp;#34;instance.hbm.xml&amp;#34;/&amp;gt;
&amp;lt;mapping resource=&amp;#34;mailsender.hbm.xml&amp;#34;/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Remplacez la clé de chiffrement du cookie dans le &lt;strong&gt;xwiki.cfg&lt;/strong&gt; (pour éviter qu’un attaquant puisse déchiffrer les cookies) et &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Configuration#HEnablesuperadminaccount" target="_blank" rel="noopener"
&gt;activez temporairement le superadmin&lt;/a&gt; pour se connecter au wiki pour la première connexion&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /var/lib/tomcat/webapps/xwiki-enterprise-web-7.2/WEB-INF/xwiki.cfg
xwiki.authentication.validationKey=1234totototototototototototototo
xwiki.authentication.encryptionKey=1234titititititititititititititi
[...]
xwiki.superadminpassword=system
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Redémarrez tomcat&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl restart tomcat
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ouvrir un navigateur sur l’URL de votre Wiki &lt;code&gt;http://wiki.example.org:8080/xwiki-enterprise-web-7.2/bin/view/Main/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Le wizard de « premier déploiement » doit apparaître. Vous le verrez à nouveau en cas de mise à jour.&lt;/p&gt;
&lt;h2 id="déployer-le-xar-main-qui-contient-lensemble-des-pages-par-défaut"&gt;Déployer le XAR « Main » qui contient l’ensemble des pages par défaut
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Attention :&lt;/strong&gt; Ce qu’il faut savoir c’est que par défaut, les XWiki sont installés sans aucunes pages. Les pages par défaut doivent être chargées manuellement via un import la première fois. C’est à ça que sert le fichier &lt;strong&gt;xwiki-enterprise-ui-mainwiki-all-7.2.xar&lt;/strong&gt; que vous avez téléchargé au début de la procédure.&lt;/p&gt;
&lt;p&gt;Tout est expliqué dans la &lt;a class="link" href="http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/InstallationWAR#HInstallingtheDefaultWikiXAR" target="_blank" rel="noopener"
&gt;documentation officielle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/00_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/01_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Ici on peut voir que la « User Interface » n’est pas disponible. J’ai l’impression que c’est le cas si votre VM n’a pas accès à Internet. Dans ce cas là, vous devez récupérer le xar contenant l’ensemble des pages par défaut pour les réimporter en tant que superadmin. Dans le cas où le bouton « Install » sous « User Interface », ce qui suit n’est pas nécessaire.&lt;/p&gt;
&lt;p&gt;Cliquez sur [Later].&lt;/p&gt;
&lt;p&gt;Normalement une page pratiquement vide doit apparaître. Il s’agit du squelette du XWiki 7.2.&lt;/p&gt;
&lt;p&gt;Se connecter sur le wiki en tant que superadmin / system et ouvrir la page d’administration (sur le côté droit)&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/015_xwiki.avif"
loading="lazy"
&gt;&lt;br&gt;
&lt;img src="https://blog.zwindler.fr/2015/11/02_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Cliquez sur « Import » et uploadez le fichier &lt;strong&gt;xwiki-enterprise-ui-mainwiki-all-7.2.xar&lt;/strong&gt; préalablement téléchargé. Après upload, le package apparait dans « Available Packages »&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/03_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;En cliquant sur le fichier xar qui vient d’être uploadé, on peut sélectionner les pages qu’on ne souhaite pas utiliser (typiquement j’ai désactivé Blog et Sandbox qui ne me servent pas).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/04_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Cocher « Import as backup package », puis cliquer sur « Import ».&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/05_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Maintenant que les pages par défaut sont importées, on a un compte administrateur local pour se connecter (Admin / admin).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/06_xwiki.avif"
loading="lazy"
&gt;&lt;br&gt;
&lt;img src="https://blog.zwindler.fr/2015/11/07_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Voilà un wiki fonctionnel utilisable en entreprise.&lt;/p&gt;
&lt;h2 id="bonus-pousser-un-peu-la-configuration-du-xwiki"&gt;Bonus, pousser un peu la configuration du XWiki
&lt;/h2&gt;&lt;p&gt;Ok ça fonctionne. Mais bon, la première chose que vous voudrez peut être faire c’est passer le XWiki en Français.&lt;/p&gt;
&lt;p&gt;Pour se faire, allez dans Administration, Localization, positionner les deux paramètres « en » à « fr » et enregistrer. La langue devrait changer automatiquement (sans redémarrage).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/08_xwiki.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Et enfin voici les différents paramètres pour désactiver le superadmin, ajouter l’authentification LDAP (exemple Active Directory, mais je l’ai fais aussi marcher en Novell et en OpenLDAP) et activer les statistiques (désactivées par défaut pour améliorer les performances).&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /var/lib/tomcat/webapps/xwiki-enterprise-web-7.2/WEB-INF/xwiki.cfg
# xwiki.superadminpassword=system
[...]
xwiki.authentication.ldap=1
xwiki.authentication.ldap.server=dom
xwiki.authentication.ldap.port=389
xwiki.authentication.ldap.bind_DN=CN=ldapreadonly,OU=xxx,DC=xxx,DC=xxx
xwiki.authentication.ldap.bind_pass=xxxxxxxxx
xwiki.authentication.ldap.base_DN=OU=xxx,DC=xxx,DC=xxx
xwiki.authentication.ldap.UID_attr=sAMAccountName
xwiki.authentication.ldap.fields_mapping=name=sAMAccountName,last_name=sn,first_name=givenName,fullname=displayName,email=mail,ldap_dn=dn
[...]
xwiki.stats=1
xwiki.stats.default=1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Redémarrez Tomcat pour prise en compte des nouveaux paramètres.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl restart tomcat
&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>