1.  Présentation

1.1  Qu’est-ce qu’un wiki

Selon wikipédia, un wiki est un système de gestion de contenu de site Web qui rend les pages Web librement et également modifiables par tous les visiteurs autorisés.

1.2  Quel wiki choisir

Il existe plusieurs dizaines de wikis, la plupart, programmées en php. Pour les comparer entre eux : http://www.wikimatrix.org/

Dans cet article nous allons détailler l’installation d’un wiki nommé PmWiki. Il présente plusieurs avantages :

  1. Il est libre
  2. Il est léger
  3. Il est modulaire

Par ailleurs, il ne nécessite pas de base de données.

Pour faire fonctionner un wiki basé sur php, il faut un serveur web disposant d’un interpréteur php. Là encore il y a l’embarras du choix : http://www.framasoft.net/rubrique247.html

Pour simplifier le propos, nous allons travailler sur un serveur web portable nommé ZMWS qui présente lui aussi plusieurs avantages :

  1. Il est libre
  2. Il est autonome et fonctionne sans installation
  3. Il supporte php, MySQL, SQLite et de nombreux langages

2.  Installation sous linux

Les lignes suivantes décrivent pour Debian/ubuntu l’installation de Apache, du support php puis de pmwiki

$ sudo apt-get install apache2 libapache2-mod-php4 
$ wget http://pmwiki.org/pub/pmwiki/pmwiki-latest.zip
$ unzip pmwiki-latest.zip && mv pmwiki-2.1.27/ /var/www/pmwiki

3.  Installation sous windows

3.1  Zazou Mini Web Server

Sur la page d’accueil de http://www.ZMWS.com/ cliquez sur Présentation rapide puis téléchargez le pack ZMWS.exe. Exécutez ce fichier auto-extractable qui va se décompresser dans le répertoire de votre choix.


Le contenu du dossier ZMWS


Double cliquez sur _start_all, un navigateur s’ouvre sur l’adresse 127.0.0.1 et vous rassure : tout fonctionne ! Observez l’icône dans la barre des tâches :

3.2  PmWiki

Téléchargez la dernière version stable : http://www.pmichaud.com/pub/pmwiki/pmwiki-latest.zip Décompressez-la dans le répertoire de votre serveur web : ZMWS\_web.zmwsc


Décompression de pmwiki-latest.zip

Le contenu du dossier ZMWS\_web.zmwsc


Renommez pmwiki-2.1.27 en pmwiki ce qui sera plus simple ;-) puis connectez-vous sur http://127.0.0.1/pmwiki/pmwiki.php

4.  Premiers pas

4.1  Rudiments de syntaxe wiki

Pour éditer une page, cliquez simplement sur ‘Edit’. Lorsque vous éditez une page, vous voyez les balises qui décrivent le contenu de la page. Les règles de base pour le balisage de la page sont très simples:

  1. Mettez une ligne vide entre chaque paragraphe.
  2. Pour faire une liste, commencer chaque ligne avec # pour une liste numérotée ou * pour une liste avec des puces
  3. Pour faire des titrages, commencez une ligne par deux ou plusieurs signes !; !! est un titre, et !!! est un sous-titre …
  4. Pour mettre en relief du texte, entourez le de 2 ou 3 apostrophe : ''texte en italique'' ou '''texte en gras'''.
  5. Pour faire un lien vers une autre page du wiki, entourez son nom par des crochets doubles; par exemple Nouvelle page? crée un lien vers cette page. Un lien vers une page non trouvée est affiché avec un point d’interrogation pour inviter à créer la page.
  6. Pour faire un lien vers un autre site, tapez son adresse, comme http://www.exemple.com/

Pour plus de détails : http://www.pmwiki.org/wiki/PmWikiFr/IndexDocumentation#using

4.2  Conversion Html → pmwiki et OpenOffice.org → pmwiki

Il est possible de convertir du code html en son équivalent pour la syntaxe wiki. Un convertisseur en ligne fait ce travail : http://diberri.dyndns.org/wikipedia/html2wiki/

Une macro OpenOffice permet d’effectuer la conversion pour des fichiers au format *.odt ou *.sxw : http://www.pmwiki.org/wiki/PmWiki.OpenOfficeMacro

5.  Configuration du site

5.1  Le fichier local/config.php

La pièce maîtresse de la configuration de pmwiki est un fichier… qui par défaut n’existe pas !! Il en existe en revanche un exemple type : docs/sample-config.php faites -en une copie dans le répertoire local/ et renommez cette copie en config.php.

Sous Linux :

$ sudo cp /var/www/pmwiki/docs/sample-config.php /var/www/pmwiki/local/config.php

5.2  Pmwiki en français

La première chose à faire est peut-être de “franciser” l’interface.

Des pages pour plusieurs languages tel que le français, l’allemand, le néerlandais et l’espagnol ont été créées et sont maintenues sur le site pmichaud.com. Vous pouvez télécharger l’archive de ces traductions depuis http://www.pmwiki.org/pub/pmwiki/i18n/ . Décompactez la simplement dans le dossier contenant le fichier pmwiki.php de votre installation. Elle contient un certain nombres de fichiers qui seront placés dans le dossier wikilib.d.

On vous demandera peut-être de confirmer le remplacement de certains fichiers: la réponse est Oui.

Une fois les pages de traduction installées, activez la nouvelle langue en effectuant un appel à la fonction XLPage() dans votre fichier local/config.php. Par exemple, pour activer les messages en français, vous devriez ajouter

XLPage('fr','PmWikiFr.XLPage');

Sous linux :

$ wget http://www.pmwiki.org/pub/pmwiki/i18n/i18n-fr.zip 
$ cd /var/www/pmwiki/ && sudo unzip i18n-fr.zip
$ sudo echo "XLPage('fr','PmWikiFr.XLPage');" >> local/config.php

5.3  Modifier l’aspect du site

Dans le répertoire pub/skins/pmwiki/ on trouve notamment deux fichiers : pmwiki.css et pmwiki.tmpl. Le premier définit les styles utilisés par les pages, le second définit les contenus, la postion des éléments…

Plutôt que modifier le skin original, dans pub/skins/, faites une copie du répertoire pmwiki et nommez-le mySkin. Appelez maintenant le skin mySkin dans le fichier local/config.php en modifiant la ligne

$Skin = 'mySkin';

à la place de

$Skin = 'pmwiki';

Vous pouvez maintenant modifier les deux fichiers pmwiki.css et pmwiki.tmpl du répertoire mySkin

5.4  Gestion des téléchargements

Par défaut, les téléchargements ne sont pas autorisés. Pour les autoriser, ajoutez ces lignes à votre local/config.php :

$EnableUpload = 1;
$DefaultPasswords['upload'] = crypt('secret');

Si vous souhaitez que des utilisateurs autorisés par mot de passe à éditer puissent uploader, plutôt que

$DefaultPasswords['upload']

saisissez dans votre config.php :

$HandleAuth['upload'] = 'edit';

Par défaut, la taille des fichers à uploader est limitée à 50Ko. Pour passer cette limiteà 200Ko, spécifiez dans local/config.php :

$UploadMaxSize = 200000; 

Pour des raisons de sécurité évidentes, le fichier /scripts/upload.php effectue, notamment, une vérification sur l’extension du fichier à uploader, mais une limitation de la taille par type peut aussi être mise en place dans local/config.php:

$UploadExts = array('xls','exe,'gif','jpg','png','doc',);  
$UploadExtSize['doc'] = 0;        # pour interdire les fichiers .doc
$UploadExtSize['gif'] = 100000;   # pour limiter la taille des fichiers .ppt à 100K

5.5  Activer la barre d’édition

Dans le fichier local/config.php décommenter la ligne :

$EnableGUIButtons = 1;

5.6  Styles pré-définis

On peut définir des styles à appliquer sur une page, par exemple :

%bgcolor=black color=white define=inverse%
%bgcolor=yellow define=fdjaune%

Texte normal, %fdjaune% texte sur fond jaune%%, retour à la normale avec
les deux "pourcent" ... %inverse% et hop, inversion !

Texte normal, texte sur fond jaune, retour à la normale avec les deux “pourcent” … et hop, inversion !

mais on peut aussi définir les style pour l’ensemble su site en ajoutant ce type d’instructions dans local/config.php :

$WikiStyle['inverse']['color'] = 'white';
$WikiStyle['inverse']['background-color'] = 'black';
$WikiStyle['fdjaune']['background-color'] = 'yellow';

Pour plus de détails : http://www.pmwiki.org/wiki/PmWikiFr/WikiStyles
et http://www.pmwiki.org/wiki/PmWikiFr/CustomWikiStyles

5.7  Edition mathématique avec LATEX

Suivez ce lien vers installer LATEX sur un serveur web

5.8  Menus spéciaux

Pour créer un menu spécial pour un groupe de pages, créez une nouvelle page intitulée GROUPNAME.SideBar ce menu sera utilisé à la place du menu usuel pour les pages du groupe GROUPNAME. Le template pub/skins/pmwiki/pmwiki.tmpl doit être modifié pour supporter cette fonctionnalité :renplacez la ligne

<!--wiki:$Group.SideBar $SiteGroup.SideBar-->

par

<!--wiki:$Group.$Name-SideBar $Group.SideBar $SiteGroup.SideBar-->

Ainsi pour la page GROUPNAME.SomePage, on verra apparaître la première occurence existante parmi GROUPNAME.SomePage-SideBar, GROUPNAME.SideBar, et Site.SideBar.

6.  Création de zones d’accès restreint

6.1  Directive conditionnelle

La directive (:if:) permet à certaines portions de la page d’être incluses ou exclues du traitement. Par exemple

(:if auth upload:) Vous pouvez lire ceci si vous êtes autorisé à déposer des fichiers(:ifend:)

Pour plus de détails : http://www.pmwiki.org/wiki/PmWikiFr/ConditionalMarkup

6.2  Mots de passe

PmWiki possède un système interne de gestion d’accès par mots de passe à différentes parties du site. C’est par défaut un système à mot de passe (seulement, sans comptes) ce qui évite les tâches de création de comptes utilisateur, de récupération des mots de passe perdus et la gestion des droits accordés à chaque utilisateur.

  • Pour définir un mot de passe sur une page du Wiki, ajouter ?action=attr à l’adresse URL de la page pour accéder à ses attributs comme ceci :
    http://www.exemple.com/pmwiki?n=NomDuGroupe.NomDeLaPage?action=attr
  • Pour définir un mot de passe sur un groupe Wiki définir les mots de passe sur une page de chaque groupe nommée “GroupAttributes” comme ceci :
    http://www.exemple.com/pmwiki?n=NomDuGroupe.GroupAttributes?action=attr
  • Pour définir un mot de passe sur le site entier c’est dans le fichier local/config.php que cela se passe :
$DefaultPasswords['admin'] = crypt('password');         # pour définir un mot de passe sur le site
$DefaultPasswords['edit'] = crypt('edit_password');     # pour restreindre l'édition
$DefaultPasswords['read'] = crypt('read_password');     # pour restreindre la lecture
$DefaultPasswords['upload'] = crypt('upload_password'); # pour restreindre l'upload

Pour plus de détails : http://www.pmwiki.org/wiki/PmWikiFr/Passwords
et http://www.pmwiki.org/wiki/PmWikiFr/PasswordsAdmin

6.3  Authentification par Login - Mot de passe

AuthUser est le système PmWiki d’autorisation basé sur un système d’identification qui permet d’accéder aux pages à travers l’usage de noms d’utilisateurs et de mots de passe. AuthUser peut être utilisé en plus du système par défaut comportant uniquement des mots de passe.

Pour activer le système PmWiki d’autorisation basé sur l’identité, ajouter la ligne suivante au fichier local/config.php :

include_once("$FarmD/scripts/authuser.php");