Paramétrage de plusieurs wikis

Le moteur de wiki MoinMoin est capable de gérer plusieurs wikis à partir d'une seule installation, d'un seul jeu de fichiers de paramétrage et d'un seul processus serveur. C'est spécialement nécessaire pour les environnements persistants comme twisted, car twisted tourne en permanence sur une adresse IP et un port TCP donnés. Donc, pour être capable d'offrir un hébergement virtuel de plusieurs domaines (wikis) sur la même adresse IP et le même port, il est nécessaire que le moteur de wiki charge simultanément de façon permanente plusieurs paramétrages et choisisse celui qui convient lors du traitement d'une requête destinée à une URL spécifique.

Pour choisir le bon paramétrage, MoinMoin utilise la variable de paramétrage wikis située dans le fichier farmconfig.py — cette variable contient simplement une liste de paires (nom_du_wiki, expression_rationnelle_d_url). Attention, n'utilisez pour nom_du_wiki que des identifiants Python valables (pour être précis : identifiant ::= (lettre|"_") (lettre | chiffre | "_")* — essayez juste un mot simple si vous ne comprenez pas cette règle de grammaire). Lorsqu'il traite une requête pour une URL, MoinMoin parcourt cette liste et essaye de trouver une correspondance entre l'URL et l'expression rationnelle. Si l'URL ne correspond pas, il passe simplement à la paire suivante. Si l'URL correspond, MoinMoin charge le fichier de paramétrage appelé <nom_du_wiki>.py (habituellement situé dans le même répertoire) qui contient le paramétrage de ce wiki.

Le fichier farmconfig.py livré avec MoinMoin contient quelques exemples d'entrées correspondant à un serveur hébergeant plusieurs wikis. Il faudra l'adapter à vos besoins si vous voulez faire tourner plusieurs wikis en parallèle.

/!\ Pour simplifier l'écriture des pages d'aide, nous appellerons wikiconfig.py les fichiers de paramétrage du type <nom_du_wiki>.py. Vous devrez bien entendu utiliser le fichier dont le nom correspond à votre wiki.

Bien entendu, comme vous avez déjà adapté le paramètre wikis du fichier farmconfig.py (voir ci-dessus), nous nous contenterons ci-dessous de vous donner quelques conseils qui vous faciliteront le travail. Pensez également à consulter les astuces de paramétrage d'un seul wiki qui vous expliqueront les règles d'héritage des paramètres.

L'utilisation d'un paramétrage basé sur une classe permet de définir les caractéristiques communes de vos wikis en un seul endroit : dans la classe de paramétrage de base (reportez-vous au fichier farmconfig.py pour en avoir un exemple) :

farmconfig.py :

# -*- coding: iso-8859-1 -*-
# farmconfig.py :
from MoinMoin.config.multiconfig import DefaultConfig
class FarmConfig(DefaultConfig):
    url_prefix = '/wiki'
    show_hosts = True
    underlay_dir = '/emplacement/partagé/du/dossier/underlay'
    # ...

La paramétrage de vos wikis individuels ne doit dès lors plus contenir que les paramètres spécifiques à chacun d'entre eux (comme le logo, le dossiers des données [data] ou les listes de contrôle d'accès). Tout le reste sera hérité de la classe de paramétrage de base (consultez moinmaster.py pour en avoir un exemple) :

moinmaster.py :

# -*- coding: iso-8859-1 -*-
# moinmaster.py :
from farmconfig import FarmConfig
class Config(FarmConfig):
    show_hosts = False
    sitename = u'MoinMaster'
    interwikiname = 'MoinMaster'
    data_dir = '/org/de.wikiwikiweb.moinmaster/data/'
    # ...