Table des matières

, , ,
Une ferme de wikis

Kesako?

L'idée est d'installer plusieurs Wikis en centralisant la gestion des mises à jour, des plugins et des options.
Il y a donc la ferme (avec le moteur, les plugins, …) et ses animaux qui sont utilisés pour les données.

Mise en place

Si ce n'est pas déjà fait, lisez la page officielle avant de revenir ici (à ce jour, la page en français n'est pas à jour).

Préparation du serveur web

Mon registrar me permettant de créer autant de sous-domaines que souhaité, j'ai opté pour la méthode des hôtes virtuels de la page officielle en modifiant très légèrement la structure proposée par celle-ci (dans un soucis de limiter le nombre de dossiers à la racine du serveur web):

Dans la série faite ce que je dit et pas ce que je fait, j'ai commencé par utiliser la structure proposée et changé d'avis en cours de route. La bonne nouvelle c'est que l'opération est possible et n'a pas été bien difficile, il faut juste être méthodique.

Dans un premier temps, il faut créer l'arborescence dokufarm/farmer pour y installer DokuWiki et préparer l'hôte virtuel correspondant en suivant les procédures standard.

Modèle d'animal

Avant de créer un animal, il faut modifier le fichier …/conf/acl.auth.php du modèle…
Voici une possibilité (droits complets pour le group @admin, création, modification et gestion des medias pour le groupe @user et lecture seule pour les autres):

acl.auth.php
# acl.auth.php
# <?php exit()?>
# Don't modify the lines above
#
# Access Control Lists
#
# Editing this file by hand shouldn't be necessary. Use the ACL
# Manager interface instead.
#
# If your auth backend allows special char like spaces in groups
# or user names you need to urlencode them (only chars <128, leave
# UTF-8 multibyte chars as is)
#
# none   0
# read   1
# edit   2
# create 4
# upload 8
# delete 16
*       @ALL    1
*       @admin  16
*       @user   8

Ajouter un animal

<cli>cd /var/www/dokufarm/ cp -R _animal/ jdr.geekitude.fr</cli>

<cli>cd /etc/apache2/sites-available/ cp dokuanimal.info.conf dokuanimal.jdr.conf vi dokuanimal.jdr.conf</cli>

<VirtualHost *:80>
    ServerName jdr.geekitude.fr

    DocumentRoot /var/www/dokufarm/farmer
</VirtualHost>

Avec Debian 9, le fichier ci-dessus suffit pour un fonctionnement standard de l'animal mais pas à l'activation de la fonction d'URL rewriting basée sur un fichier .htaccess, voir ci-dessous un exemple à jour du même fichier aujourd'hui.

<VirtualHost *:80>
    ServerName jdr.geekitude.fr

    DocumentRoot /var/www/dokufarm/farmer
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/dokufarm/farmer>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<cli>a2ensite dokuanimal.photo.conf Enabling site dokuanimal.photo. To activate the new configuration, you need to run:

service apache2 reload

service apache2 reload</cli>

<cli>cd /mnt/muffin/scripts/ vi dokufarm.sh dokufarm.sh</cli>

<cli>cd /var/www/dokufarm/farmer/inc/ vi preload.php</cli>

<cli>webdroits.sh</cli>

Et voilà !

Ou presque… Pas de panique :-)
J'ignore si c'est toujours comme cela ou lié à la méthode d'installation choisie mais ce cas s'est présenté à chaque création d'un nouvel animal. Ne pas cliquer sur le lien proposé pour lancer l'installateur (qui s'applique probablement à une installation standard et pas à une ferme) mais il suffit simplement de ré-appliquer les droits utilisés sur l'ensemble du site au nouvel animal pour que tout fonctionne correctement.

Attention : à ce stade, tout est fonctionnel mais si vous n'avez pas modifié le modèle d'animal comme indiqué plus haut, par défaut, n'importe qui, sans même être connecté, peut créer ou supprimer des pages.

Plus de centralisation

  • script preload.php : smileys
  • script bash dokufarm.sh pour les images communes

Astuces

Favicon & Co

Pour que chaque animal ait sa propre icône, c'est très simple (mais l'info n'est pas facile à trouver) : il suffit de placer le(s) fichier(s) correspondant(s) (favicon.ico et/ou apple-touch-icon.png) à la racine du dossier data/media de chaque animal.

URLs plus sexy

Il est tout à fait possible d'utiliser l'URL rewriting avec une ferme de wikis (en tout cas avec la méthode des hôtes virtuels présentée dans cet article). La procédure est exactement la même que pour un wiki solitaire mais retenez simplement que le fichier .htaccess doit être placé à la racine du moteur DokuWiki (ici dans le dossier /farmer) sans changer la ligne RewriteBase / et se trouve ici.

1)
par exemple pour l'animal que vous êtes en train de consulter, le dossier se nomme info.geekitude.fr