Comment créer son Wiki d’entreprise avec MediaWiki ?

I. Présentation

Le mot "wiki" vient du hawaïen et signifie rapide, vite ou informel. C’est Ward CUNNINGHAM qui a introduit ce terme lorsqu’il créa le premier wiki, qu’il appela WikiWikiWeb pour signifier l’instantanéité et la rapidité de cette création. Sur son site, le terme wiki apparait seul dans l’url, et fut alors repris par la suite.

REMARQUE : dans "The Economist", un journaliste a d’ailleurs fait remarquer que Wiki pouvait aussi être l’acronyme de "What I Know Is" : "Voici ce que je sais est".

Aussi, une application wiki fonctionne avec un moteur wiki, c’est-à-dire un logiciel installé sur le système d’exploitation disposant d’un site web actif. En fait, il s’agit d’une couche logicielle basée sur la trilogie Apache/MariaDB /PHP (aussi abrégée en AMP).

Le rôle d’une application wiki est généralement d’afficher de l’information. Mais, faut-il encore pour réaliser les opérations suivantes :

- Identification des utilisateurs
- Modification des pages
- Liens et création de pages
- Suivi des modifications

RAPPEL : un wiki n’a pas nécessairement vocation à être modifié par tout le monde. Il peut exiger que les visiteurs s’inscrivent avant d’être autorisés à modifier le contenu des pages. Dans le cas d’applications wiki ouvertes au public, diverses procédures techniques et sociales sont mises en œuvre pour limiter et annuler les modifications indésirables.

En tout état de cause, lorsqu’un wiki autorise des usagers anonymes à modifier les pages, c’est l’adresse IP de ces derniers qui les identifie. Les utilisateurs reconnus peuvent, quant à eux, se connecter sous leur nom d’utilisateur.

On accède à un wiki en lecture comme en écriture via un navigateur traditionnel. Les pages sont visualisées selon deux modes distincts :

- en mode lecture, qui est le mode par défaut.
- en mode écriture, qui présente la page sous une forme permettant d’être modifiée.

Dans ce dernier mode, le texte de la page, affiché dans un formulaire web, s’enrichit d’un certain nombre de caractères supplémentaires, suivant les règles d’une syntaxe particulière, appelée le "wikitexte". Cela permet d’indiquer la mise en forme du texte, de créer des liens et de disposer des images.

Le wikitexte a été conçu pour que les fonctionnalités les plus courantes soient faciles à assimiler et à saisir. Seules, les informations générales de navigation, servant de modèle à la structure de la page, ne sont pas modifiables.

REMARQUE : Quelques applications wiki proposent à leurs utilisateurs, en lieu et place du wikitexte, une interface WYSIWYG (What You See Is What You Get). C’est le cas pour Confluence et XWiki, ainsi que Wikipedia depuis juillet 2013.

Les wikis favorisent la création d’hyperliens, en simplifiant l’écriture et en n’imposant absolument aucune contrainte organisationnelle. Ainsi, chaque page web contient de nombreux liens les reliant à d’autres pages, sans structure hiérarchique apparente. Il existe toutefois, des fonctionnalités pour classer (ou plus précisément retrouver), les pages. Mais ces fonctions ne sont pas indispensables.

Le wiki, en tant que tel, devient un foisonnement de pages, mises au même niveau et reliées les unes aux autres, selon la logique propre au contenu de chacune d’entre elles. Cela favorise le classement des idées et permet une grande mobilité du texte présenté.

A l’origine, les wikis utilisaient des MotsWiki (tels que, par exemple "CompteUtilisateur"), afin de générer automatiquement des liens vers d’autres pages. Certains wikis ont des règles de syntaxes distinctes pour la création de leurs liens, comme MediaWiki, où l’utilisateur emploie des crochets.

L'apparence des liens (couleur, forme…), varie selon qu’il s’agit d’une page existante ou d’une page à créer, que l’utilisateur peut alors générer de son propre fait. Certains wikis permettent à un contributeur reconnu de suivre l’évolution d’une page, ou, les contributions d’une personne en particulier, ou encore, l’ensemble des créations de pages. Ces suivis permettent de réagir rapidement à des actes de vandalisme ou de spam.

L'accessibilité pour un grand nombre de personnes, à la modification de la page, rend nécessaire l’existence d’une fonctionnalité d’historique de ces modifications. Cela permet également de pouvoir réparer des corruptions ou destructions. L’historique indique généralement la date de modification, le nom ou l’adresse IP de l’auteur afin d’en discuter avec lui. Cela permet aussi le respect du droit d’auteur, en conservant une trace de tous les auteurs d’un article.

Lorsqu’une page est modifiée, les contributeurs réguliers, qui suivent les évolutions de cette page, peuvent vérifier (et au besoin corriger ou compléter), la modification effectuée. Ainsi, les actes de vandalisme, le spam et les divers détournements peuvent être rapidement détectés et jugulés.

Le logiciel dispose généralement de diverses fonctions et d’un système de gestion des droits d’utilisation de ces fonctions. Ainsi, les utilisateurs d’un wiki écrits dans ce formalisme peuvent être répartis en différentes familles, ayant chacune accès à tout ou partie des fonctions du logiciel.

Parmi les logiciels wiki les plus utilisés on peut citer les programmes ci-dessous, fonctionnant tous avec l’interpréteur PHP :

- MediaWiki
- Wikia
- DokuWiki
- TikiWiki
- WackoWiki

II. Constitution de l’environnement de travail

Pour pouvoir utiliser un logiciel de wiki, tel que MediaWiki, il faut au préalable installer une architecture de type AMP (et de préférence sur Linux). On parle alors d’architecture LAMP : Linux-Apache-MariaDB-PHP.

On peut se référer au tutoriel d’installation d’une structure LAMP à cet égard. La seule chose à faire au préalable est de se créer un compte applicatif, que l’on appellera ici wiki.

# adduser wiki
# passwd wiki

IMPORTANT : La couche PHP permet de gérer le contenu dynamique, MariaDB permet de contenir le format des pages et Apache d’afficher ces dernières. L’installation se fait généralement sur une distribution Linux : par exemple, CentOS 7, permettant de remplir le premier socle de l’architecture LAMP : à savoir, Linux.

Afin de disposer de suffisamment de droits, on peut faire appartenir le compte wiki au groupe wheel. En effet, sur une distribution CentOS7, les utilisateurs de ce groupe sont autorisés à utiliser la commande sudo.

# gpasswd –a wiki wheel

Si toutefois, on préférait jouer la carte de la sécurité et utiliser explicitement le compte applicatif wiki à ne travailler qu’avec certaines commandes du système, on peut alors créer les entrées suivantes dans le fichier /etc/sudoers :

...
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /usr/bin/net, /sbin/iptables
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/binup2date, /usr/bin/yum
Cmnd_Alias COMMANDS = /bin/vi, /usr/bin/hostname
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig, /usr/bin/systemctl start, /usr/bin/systemctl stop, /usr/bin/systemctl reload, /usr/bin/systemctl restart, /usr/bin/systemctl status, /usr/bin/systemctl enable, /usr/bin/systemctl disable
Cmnd_Alias LOCATE = /usr/bin/updated
...
wiki ALL=NETWORKING, COMMANDS, SOFTWARE, SERVICES, LOCATE

Lorsque le compte applicatif wiki est opérationnel, on peut alors se passer du compte root. Il suffit d’éditer le fichier sshd_config se trouvant dans le répertoire /etc/ssh et de vérifier que la ligne ci-dessous est bien présente et commentée :

# PermitRootLogin yes

ATTENTION : afin d’être certain que le compte root ne pourra jamais se connecter via SSH, on peut décommenter la ligne et placer le champ à la valeur ‘no’ :

PermitRootLogin no

Le compte root, sur une distribution CentOS 7 est systématiquement désactivé, car la ligne ci-dessus est commentée, et la valeur par défaut est à ‘no’. Mais, au moins, ainsi, il n’y a pas d’ambiguïté.

Si l’on modifie le fichier sshd_config, il faut alors redémarrer le daemon sshd en exécutant la commande suivante :

# systemctl restart sshd

On peut alors s’assurer, au travers d’une session Putty que l’on peut accéder directement au compte wiki nouvellement configuré, via le protocole SSH et avec la commande sudo.

Exemple : accès au fichier de configuration sshd_config via la commande sudo :

$ sudo vim /etc/ssh/sshd_config

 

III. Installation de MediaWiki

A. Autorisation des flux web sur le firewall

Dans le cas où l’on a laissé le service de pare-feu activé, il faut alors autoriser les flux HTTP et HTTPS pour que les pages puissent être visualisées correctement :

$ sudo firewall-cmd --permanent --zone=public --add-service=http
$ sudo firewall-cmd --permanent --zone=public --add-service=https
$ sudo firewall-cmd --reload

Lorsque la page de test s’affiche, il faut bien évidemment supprimer le script PHP, afin de ne pas laisser de porte ouverte en cas d’attaque :

$ sudo rm /var/www/html/info.php

On dispose maintenant d’une plateforme LAMP : c’est-à-dire un serveur Linux configuré avec les services Apache, MariaDB et PHP opérationnels. On va donc pouvoir installer le service MediaWiki.

B. Mise en place des prérequis

L’installation de MediaWiki nécessite quelques prérequis supplémentaires pour être utilisé de façon optimum. Il faut notamment ajouter quelques modules PHP supplémentaires :

$ sudo yum install php-xml
$ sudo yum install php-intl
$ sudo yum install php-gd

Par ailleurs, si l’on souhaite mettre en œuvre un site wiki utilisant des formules mathématiques, il est conseillé d’ajouter le package texlive:

$ sudo yum install texlive

Afin d’améliorer encore les performances du site, il est également possible d’ajouter le module PHP XCache (se trouvant dans le dépôt officiel EPEL), que l’on doit donc installer, s’il n’est pas déjà présent :

$ sudo yum install epel-release
$ sudo yum install php-xcache

On doit alors redémarrer le service web pour prendre en compte les nouveaux ajouts de modules PHP:

$ sudo systemctl restart httpd.service

 

C. Récupération de MediaWiki

Après ces préambules, on peut alors récupérer la toute dernière version de la suite MediaWiki par la méthode standard décrite ci-dessous:

$ curl –O http://releases.wikimedia.org/mediawiki/1.28/mediawiki-core-1.28.0.tar.gz

REMARQUE : il est conseillé de placer le fichier tarball dans un répertoire de travail. Car, on devra par la suite copier des bribes du contenu dans le répertoire du serveur web : /var/www/html.

$ tar xzvf mediawiki-*.tar.gz
$ sudo mv mediawiki-core-1.28.0/* /var/www/html

 

D. Création de la base de données associée

A ce stade, on va pouvoir générer la base de données sous-jacente, en se connectant au compte root de l’instance MariaDB. En effet, lors de l’initialisation de la structure AMP, nous n'avons juste fait qu’installer le moteur de base de données, sans créer de structures propres à l’application wiki. Il faut commencer par se connecter à MariaDB:

$ mysql –u root –p

A l’apparition du prompt "MariaDB>". On va alors pouvoir créer la base de données :

MariaDB> CREATE DATABASE mywiki ;
Query OK, 1 row affected (0.00 sec)

Comme pour le système d’exploitation, on va créer un utilisateur autre que le compte root pour administrer cette instance:

MariaDB> CREATE USER 'srwiki'@'localhost' IDENTIFIED BY '******';
Query OK, 0 rows affected (0.00 sec)
MariaDB> GRANT ALL ON mywiki.* TO 'srwiki'@'localhost';
Query OK, 0 rows affected (0.00 sec)

Il ne reste plus qu’à recharger la table MariaDB des privilèges pour pouvoir initialiser le nouvel administrateur MariaDB:

MariaDB> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

L’environnement de l’outil MediaWiki étant maintenant prêt, on va pouvoir passer à l’installation, à proprement parlé, du logiciel. Il suffit maintenant d’exécuter l’url http://<Server> et de suivre les instructions qui s’affichent. Il faut commencer par sélectionner l’option "Setup the Wiki".

Toutefois, si l’on obtient le message ci-dessous, il faut obtempérer et mettre à jour la version de PHP :

On doit alors aller sur le site http://www.php.net/downloads.php et récupérer la version supérieure à celle demandée : 5.5.9, de préférence dans un mode stable. Soit, par exemple, la version 5.5.38. Une fois le fichier .tar.gz placé dans le répertoire /home/wiki, on peut alors le décompresser. La version PHP 5.5 peut être mise à jour depuis le dépôt Webmatic .

S’il n’est pas possible de mettre à jour la version PHP, alors il faut passer à une version MediaWiki plus ancienne, comme la version 1.26.4. Normalement, après avoir copié le contenu du sous-répertoire mediawiki-1.26.4 dans /var/www/html, l’exécution de l’url http://<Server>, devrait permettre de visualiser l’écran suivant :

Un assistant va ensuite proposer de sélectionner un langage et va ensuite vérifier que les prérequis sont bien tous présents. Les coches devraient alors toutes être au vert. On peut ainsi cliquer sur le bouton Continue.

E. Initialisation de MediaWiki

En ce qui concerne le langage, il est conseillé de sélectionner le français (surtout s’il s’agit de partager de l’information avec des personnes francophones :

Une fois l’environnement vérifié, on devrait avoir un message (écrit en vert) notifiant que les prérequis sont respectés :

Il faut alors définir les propriétés concernant l’instance MariaDB. Pour le type d’instance, on doit sélectionner MySQL (or compatible). Le nom de la machine est alors localhost, quant au nom d’utilisateur, il s’agit de celui que l’on a créé précédemment.

REMARQUE : pour que l’instance de base de données puisse offrir les informations à la couche PHP, il est impératif que le package php-mysql soit installé. S’il ne l’est pas, il faut le faire :

$ sudo yum install php-mysql

ATTENTION : si l’on change d’utilisateur, il faudrait aussi l’autoriser au niveau de la base MariaDB, sinon, on ne pourrait pas s’y connecter.

On doit également préciser le mot de passe qu’on lui attribué et définir la politique de gestion des comptes :

Les autres valeurs peuvent être laissées par défaut. On devra également préciser en détail le nom du wiki et on génèrera le compte d’administration (admin, par défaut) pour le site web. Si l’on souhaite un paramétrage spécifique, il faut changer la ou les valeurs concernées sur les écrans suivants. En particulier, si l’on a installé le module XCache, il faudra bien l’activer durant la phase d’initialisation. Lorsque les différentes options ont été sélectionnées, on devrait arriver sur l’écran ci-dessous, indiquant que MediaWiki s’apprête à être installé :

Lorsque l’on a complété l’ensemble des étapes précédentes, on devrait alors aboutir à l’écran ci-dessous :

 

F. Récupération du fichier de configuration LocalSettings.php

Afin de finaliser l’installation du serveur MediaWiki, comme suggéré sur la capture d’écran, il faut télécharger le fichier LocalSettings.php sur le serveur local, en cliquant sur le lien qui nous est proposé. Le téléchargement devrait s’effectuer automatiquement. Ce fichier et son contenu doivent être placés dans le répertoire /var/www/html :

$ sudo nano /var/www/html/LocalSettings.php

En copiant le contenu du fichier LocalSettings.php, on va alors pouvoir ensuite personnaliser le site wiki à notre mode. Lorsque c’est fait, il faut alors cliquer sur le lien "Enter your wiki", pour pouvoir accéder au site MediaWiki :

 

V. Conclusion

Ca y est c’est gagné, on peut désormais centraliser l’ensemble des informations d’une entité : qu’il s’agisse d’un service, d’une entreprise ou de simples connaissances. On peut commencer à utiliser MediaWiki. Il faudra très certainement commencer par personnaliser le site. Mais, ça, c’est une autre histoire...

On vient de voir comment initialiser une structure Apache-MariaDB-PHP pour pouvoir installer et utiliser un site MediaWiki. Le plus dur reste à faire : remplir de votre contenu le site wiki.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Philippe PIERRE

A exercé de nombreuses années en tant qu’administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd’hui, employé en tant qu’ingénieur infrastructure, au sein d’un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d’une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.

    philippe-pierre a publié 18 articles sur IT-Connect.See all posts by philippe-pierre

    4 réactions sur “Comment créer son Wiki d’entreprise avec MediaWiki ?

    • 24/05/2017 à 06:59
      Permalink

      Article intéressant, il ne faut pas oublier de citer les produits Sharepoint qui proposent un module wiki très complet et très intuitif 🙂

      Répondre
    • 24/05/2017 à 10:29
      Permalink

      Bonjour,
      Un tuto version Windows est il prévu ?
      Merci encore

      Répondre
    • 24/05/2017 à 13:27
      Permalink

      Très bien pour commencer ou pour un usage très basique nous l’avons utilisé pendant plusieurs années. Nous utilisons maintenant de notre côté Confluence (par Atlassian) et c’est à des années lumière de mediawiki. Bon article cependant!

      Répondre
    • 24/05/2017 à 20:43
      Permalink

      En ce qui concerne les Wiki, effectivement il existe des tas de solutions, autres que MediaWiki: certains moins bien, d’autres très certainement mieux, comme Confluence.

      L’avantage de MediaWiki est qu’il est facile à mettre en œuvre et qu’il permet de centraliser l’information en un seul point. C’est très pratique lorsque vous avez des dizaines, voire des centaines de documents et qu’il faut systématiquement les rechercher via un index pour retrouver l’information nécessaire.

      Je pense qu’il faut savoir doser ses efforts pour la mise en œuvre avec la qualité et la complexité du service rendu.

      Quant à savoir si on peut installer MediaWiki sur Windows, la réponse est oui, au sein de l’équipe It-Connect, il y a aura bien une bonne âme pour se dévouer et effectuer l’installation sur Windows 10, par exemple.

      Répondre

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *