info.geekitude.fr
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):
- …www
- dokufarm
- _animal (le modèle d'animal)
- farmer (le fermier ou le moteur DokuWiki)
- animal1 attention au nom du dossier qui doit correspondre à celui de l'hôte virtuel 1)
- …
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
- Se connecter au FAI pour ajouter un CNAME
- Copier le modèle d'animal vers un nouveau dossier correspondant à l'animal
<cli>cd /var/www/dokufarm/ cp -R _animal/ jdr.geekitude.fr</cli>
- Créer le site virtuel à partir d'un autre animal
<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>
- Activer le site virtuel
<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>
- Eventuel script externe
<cli>cd /mnt/muffin/scripts/ vi dokufarm.sh dokufarm.sh</cli>
- Script interne
<cli>cd /var/www/dokufarm/farmer/inc/ vi preload.php</cli>
- Gérer les droits
<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.