Table des matières
Ceci est une ancienne révision du document !
DokuWiki
- dokuwiki sur raspberry ?
- passage en https
- verrouillage de pages si accès concurrents
- abonnement RSS aux dernières mises à jour du site ou d'un espace de noms ?
- xmlrpc ? envoi de contributions par email pour des pages,…
- https://www.dokuwiki.org/dokuwiki : site web officiel
- https://github.com/splitbrain/dokuwiki gitHub repository
- https://www.dokuwiki.org/fr:manual Manuel de DokuWiki
Introduction
A côté d’un blog (tel que WordPress), utile pour créer un site “vitrine” composé“ essentiellement de pages statiques et d’articles pouvant être commentés, il est intéressant de proposer des pages d’informations dont le contenu est susceptible de s’enrichir régulièrement.
Il est aussi courant de partager en lecture certains documents de manière limitée, avec des personnes ou des groupes de personnes contrôlés, ou de les partager dans un but collaboratif avec des permissions supplémentaires d’écriture. Il permet facilement les modifications et ajouts de pages, de “répertoires”.
→ définir un wiki (cf. aussi Using DokuWiki as a lightweight CMS)
- collaboratif
- rapide, flexible
- syntaxe simple
- historique des versions
- structuration de l'information
- navigation hypertextuelle
- indexation
- présentation uniforme (le contenu a priorité sur sa présentation)
Si à cela vous ajoutez les souhaits d’une présentation uniforme, d’un langage de formatage simplifié mais puissant, la nécessité de conserver les versions successives d’un travail, de les organiser dans une arborescence, alors le logiciel à installer est un wiki, et le logiciel DokuWiki est particulièrement indiqué, pour les raisons suivantes :
- c'est un logiciel libre éprouvé, très suivi et tenu à jour par une communauté importante
- l'utilisation se fait dans un navigateur web
- le langage de balise est simple, et l'environnement propose un éditeur avec barre d’outils
- il n'exige pas de connaissance préalable
- aucune base de données n’est nécessaire
- l'outil collaboratif est éprouvé, et utilisé par des sites web reconnus
- la gestion des droits d’accès par utilisateurs ou groupes (ACL) est très évoluée
- DokuWiki et des sites tiers proposent de nombreuses extension (plugins) et thèmes (templates)
- DokuWiki conserve un historique des versions et possède un moteur d'indexation et de recherche efficace
Références :
- https://www.dokuwiki.org/start?id=fr:dokuwiki : DokuWiki présenté par DokuWiki !
Historique du projet
Installation
- Documentation :
Procédure de base
Puisqu’il n’y a pas de base de données, l’installation est plus simple que celle de la plupart des CMS. A partir d’une fenêtre de terminal (Linux, Mac), ou d’un client ssh comme PuTTY (Windows) :
- Connexion et identification sur le serveur : ssh username@dns or username@ip_address (ou via les paramètres de PuTTY);
- se placer dans le répertoire web : cd /var/www/html
- créer un répertoire pour le wiki : sudo mkdir wiki00
- s’y placer : cd wiki00
- télécharger la dernière version de DokuWiki : sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
- décompresser l’archive : sudo tar -xzvf dokuwiki-stable.tgz –strip-components=1
- effacer l’archive : sudo rm dokuwiki-stable.tgz
- owner & permissions (https://www.dokuwiki.org/install:permissions#unix)
- sudo chown -R www-data:www-data /var/www/html/wiki00
- cd /var/www/html/wiki00 (si on n'y était pas)
- fichiers : sudo find . ! -type d -exec chmod 660 {} \;
- répertoires : sudo find . -type d -exec chmod 770 {} \;
- on peut à présent régler la configuration de base de DokuWiki via un navigateur web, en pointant sur http://dns/wiki00/install.php ou http://ip_address/wiki00/install.php. Documentation spécifique : https://www.dokuwiki.org/installer pour la description des options :
- Wiki Name
- Enable ACL
- Superuser
- Full Name
- E-Mail
- Password
- Once Again
- Initial ACL policy
- Allow users to register themselves
- sudo rm install.php (effacement du script d'installation)
Une fois tout cela accompli, le wiki est pré-configuré et (presque) opérationnel ! Après l'initialisation, il convient d’effectuer rapidement quelques réglages de la configuration. Pour y arriver, il faut tout d’abord se connecter, et ensuite se diriger vers le menu d’administration. Avec le canevas de présentation (template) par défaut, on trouvera en bas de la page les boutons de connexion et d’administration. Choisissez alors les “Paramètres de configuration”. Une fois sur la page vous pourrez effectuer de nombreux réglages, dont ceux-ci qui me paraissent très utiles, voire indispensables :
- choisir la langue de l’interface language fr
- mode de création des répertoires : choisir 02770 (au lieu de 0755) (set gid, cf. http://www.dokuwiki.org/config:dmode)
- mode de création des fichiers : choisir 0660 (au lieu de 0644)
- Dans les paramètres d’authentification, rubrique “Actions à désactiver dans DokuWiki”, vérifier la désactivation (cocher) de l’action “s’enregistrer”, sauf si vous voulez permettre à n’importe quel quidam de s’inscrire et appartenir au groupe “user”
- pour le délai avant indexation (paramètres anti-spam), vous pouvez vous contenter de 60*5 plutôt que 60*60*24*5, qui contraint à une attente de 24H après édition, avant que l’indexation par un robot de moteur de recherche ne redevienne possible
- Si comme administrateur vous souhaitez être averti à chaque modification effectuée par un autre utilisateur, indiquez votre email derrière “Notifier les modifications à cette adresse de courriel” (paramètres d’édition)
- ensuite, vous pouvez aussi activer l’abonnement aux pages, ce qui aura pour effet de générer un envoi par email notifiant la modification. Le délai peut être réglé par l’option suivante (“Délai après lequel les listes d’abonnement …”)
- Mentionner dans ce dernier cas l’expéditeur des notifications par courriel du wiki (paramètres avancés)
Plus tard, notamment si vous ajoutez des extensions (plugins) possédant leurs propres paramètres de configuration, vous pourrez revenir sur ce menu d’administration !
Quelques premières améliorations (extensions,...)
DokuWiki peut être étendu par des extensions (plugins) dont certaines sont particulièrement utiles. Ces extensions sont installées à partir du panneau d'administration. Sélectionner la page “Gestionnaire d'extensions”, qui permet de lister les plugins installés. Il est facile d'en installer d'autres, via l'onglet “Rechercher et installer” : taper “upgrade” pour obtenir la liste des extensions correspondant à ce critère. Le plugin “Upgrade plugin” apparaît normalement en tête, et il suffit de cliquer sur le bouton “installer”. En retournant sur le panneau d'administration, on dispose à présent de la fonctionnalité “Mise à jour du wiki” qui sera utile lors de la sortie d'une mise à jour du logiciel, pour lesquelles des messages d'avertissement seront affichés.
Le thème graphique de DokuWiki peut aussi être modifié en sélectionnant un des nombreux thèmes listés à la page https://www.dokuwiki.org/template. Les thèmes s'installent comme les extensions, mais un seul thème à la fois peut être activé, via le gestionnaire de configuration. Bootstrap3 est un exemple de thème fréquemment utilisé.
Réécriture d'URL (jolis URL)
- https://www.dokuwiki.org/fr:rewrite explique (option 1) comment remplacer l'URL “http://servername/wiki/doku.php?id=wiki:syntax” par un URL plus beau, et aussi mieux indexé par certains moteurs de recherche : “http://servername/wiki/wiki:syntax”
- Sur le serveur :
- sudo a2enmod rewrite
- sudo systemctl restart apache2
- cd /var/www/html/wiki
- cp .htaccess.dist .htaccess
- sudo nano .htaccess
- décommenter les lignes concernant le rewrite :
RewriteEngine on # RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L] RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L] RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L] RewriteRule ^$ doku.php [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) doku.php?id=$1 [QSA,L] RewriteRule ^index.php$ doku.php
- sudo chown www-data:www-data .htaccess
- normalement il n'y a pas de pas de changement nécessaire dans le fichier de configuration d'Apache2
- Dans la configuration du wiki (via la page d'administration et les paramètres de configuration), aller dans les paramètres avancés, et pour userewrite (Utiliser des URL esthétiques), sélectionner l'option “Fichier .htaccess”
Sécurisation, configuration
Solution :
- sécurisation via apache2 https://www.dokuwiki.org/security#web_access_security
- sudo nano /etc/apache2/sites-available/default → changer AllowOverride None en AllowOverride all pour /var/www
- sudo service apache2 restart
Quelle est la structure du wiki sur le serveur ?
- Structure complète dans le Manuel du développeur : https://www.dokuwiki.org/devel:dirlayout
- Quelques répertoires importants :
- aa
- bb
- Répertoires propres à l'installation (importants à sauvegarder) :
- data/pages - contient les pages actuelles
- data/meta - contient les méta-informations sur les pages (créateurs, abonnés,…)
- data/media - contient les fichiers media actuel (images, PDFs, …)
- data/media_meta - contient les métadonnées des media
- data/attic - anciennes versions des pages
- data/media_attic - anciennes versions des media
- conf - les réglages de configuration
Comment utiliser plusieurs instances de DokuWiki ?
Mises à jour
Sauvegardes
En mode manuel, avec création d'une copie sous un autre nom
- Se connecter en ssh au serveur : ssh vmuser@ip_address
- tar zcpfv dokuwiki-backup.tar.gz /var/www/html/wiki00
- Le fichier de sauvegarde se trouve dans le répertoire home de vmuser
- Pour créer (immédiatement ou ultérieurement) une copie sous un autre nom, se placer dans le répertoire web : cd /var/www/html
- créer un répertoire pour le wiki : sudo mkdir wiki01
- s’y placer : cd wiki01
- décompresser l’archive en omettant le chemin sauvegardé (\var\www\html\wiki00) :
- sudo tar -xzvf /home/vmuser/dokuwiki-backup.tar.gz –strip-components=4
- À ce stade, les droits et propriétaires ne sont pas correct (vérifier par ls -l) : changer owner & permissions (https://www.dokuwiki.org/install:permissions#unix)
- sudo chown -R www-data:www-data /var/www/html/wiki01
- cd /var/www/html/wiki01 (si on n'y était pas)
- fichiers : sudo find . ! -type d -exec chmod 660 {} \;
- répertoires : sudo find . -type d -exec chmod 770 {} \;
- Références :
Migration
- en cas de migration, effacement de fichiers obsolètes : sudo grep -Ev '^($|#)' data/deleted.files | xargs -n 1 rm -vf
réinstallation
- cd /var/www puis effacement de l'éventuelle version antérieure : sudo rm -rf wiki
- cd /home/dvillersadm copie d'une archive dokuwiki à réinstaller à cet emplacement
- extraction par sudo tar -xzvf ./dokuwiki500299_2013-08-28_03:17:01.tar.gz
- cd /home/dvillersadm/home/500299/public_html
- sudo mv wiki /var/www puis cd /var/www
- owner & permissions https://www.dokuwiki.org/install:permissions#unix
- sudo chown -R www-data:www-data /var/www/wiki
- cd /var/www/wiki
- fichiers : sudo find . ! -type d -exec chmod 660 {} \;
- répertoires : sudo find . -type d -exec chmod 770 {} \;
Extensions
- Forme :
- BlockQuote : mise en forme de citations
- catlist : rend une liste en arborescence de pages d'un namespace
- Chem, formatage de formules de substances chimiques
- Cloud, nuage de mots utilisés
- https://www.dokuwiki.org/plugin:color, couleur du texte
- Definition List, par exemple pour un glossaire
- Diagram, construction de diagrammes
- https://www.dokuwiki.org/plugin:edittable, facilite l'édition de tableaux
- https://www.dokuwiki.org/plugin:flowchartjs diagrammes basés sur flowchart.js
- https://www.dokuwiki.org/plugin:flowcharts diagrammes et graphes basés sur la librairie mermaid.js
- Fonctionnalités
-
- CAPTCHA : vérification pour lutter contre les robots spammeurs
- CookieLaw, affiche un texte sur l'existence de cookies
- Dataplot Plugin, graphique élémentaire
- https://www.dokuwiki.org/plugin:fastwiki édition rapide de sections
-
- Formulaire, automatisation
- https://www.dokuwiki.org/plugin:doodle4 planification de réunions, votes,…
- Calendriers, agenda :
- https://www.dokuwiki.org/plugin:davcal → synchronisable Calendar
- https://www.dokuwiki.org/plugin:google_cal → google, mais non maintenu !!
- https://www.dokuwiki.org/plugin:minical → each day is represented by a wiki page (uniquement par mois)
- https://www.dokuwiki.org/plugin:yearbox → year or recent month(s) calendars, with a new page link for each day
- https://www.dokuwiki.org/plugin:schedule → représentation d'événements (localisation, contenu, moment,…)
- réseaux sociaux (Facebook, Twitter, Instagram,…)
- https://www.dokuwiki.org/plugin:importfacebookevents → display your Facebook events
- https://www.dokuwiki.org/plugin:facebook → Add Facebook Fan Boxes
- https://www.dokuwiki.org/plugin:socialite → responsive lightweight social share buttons
- https://www.dokuwiki.org/plugin:twitter → Show tweets or searches from Twitter
- Forum et inclusion de forum, commentaires,…
- édition avancée
-
- installable via le gestionnaire d'extensions
- librairies additionnelles sur le serveur :
- sudo apt-get install texlive-latex-base imagemagick ghostscrip
- Dans le gestionnaire d'administration, une rubrique complémentaire “LaTeX plugin tasks” est présente dans la partie “Extensions”
- L'erreur “LaTeX render failed” peut être causée par un problème de permissions avec ImageMagick (cf. https://github.com/marklundeberg/dokuwiki-plugin-latex/issues/9. Éditer le fichier /etc/ImageMagick-6/policy.xml et modifier la ligne <policy domain=“coder” rights=“none” pattern=“PS” /> en <policy domain=“coder” rights=“read” pattern=“PS” /> !
- plugin»latex»convert_options initialement à '-density 120 -trim -transparent ”#FFFFFF”', utilisation de '-density 180 -trim -transparent “#FFFFFF”' pour des rendus un peu plus grand
- CSV : https://www.dokuwiki.org/plugin:csv : permet de présenter en table le contenu d'un fichier csv. Modification des types mime (autoriser csv) via un fichier conf/mime.local.conf à créer. Cf. documentation : https://www.dokuwiki.org/mime
- iframe
- reveal.js
- geophp https://www.dokuwiki.org/plugin:geophp (+ installation de librairies ?)
- openlayersmap https://www.dokuwiki.org/plugin:openlayersmap
- html5video https://www.dokuwiki.org/plugin:html5video → Add video mime types to DokuWiki configuration
:
- Enregistrements d'inscriptions (mailing, newsletter,…) via des plugins dokuwiki :
- Plugins bureaucracy, pagemod ; En option : sqlite, (data, remplacé par…) struct, CAPTCHA ? attention au GDPR ! → Cookielaw (affichage d'une bannière avertissant le stockage de cookies)
- utilitaires :
- plugin getraw https://www.dokuwiki.org/plugin:getraw → copier
- xmlrpc ??
- plugins Flowchartjs flowcharts
- svgEmbed + edit de mime.local.conf
- definitionlist https://www.dokuwiki.org/plugin:definitionlist → glossaire
Logo & favicon ??
Divers
Thèmes (templates)
- testés (et approuvés)
- bootstrap3 avec united de https://bootswatch.com/
Pages et structure en namespaces
- Les documents individuels sont des pages
- Pour créer une page, il suffit de créer un lien vers une page inexistante
- Pour supprimer une page, il faut “Modifier cette page”, sélectionner l'ensemble du code du texte (Ctrl + A), le supprimer et effectuer “Enregistrer”. La page vide est alors automatiquement supprimée
- Les pages peuvent être classées dans une structure arborescente comme pour des fichier habituels d'un système d'exploitation. Ces répertoires successifs sont appelés des “namespaces” et le séparateur utilisé est “:”, analogue au “/” et “\” sous GNU/Linux et MS Windows. Les liens peuvent faire référence au namespace parent par “..” et les liens peuvent être relatifs, ou absolus. Le nom de page est toujours le nom qui est à droite du dernier caractère “:”.
- des outils permettent d'afficher l'arborescence ou une sélection, et de renommer ou déplacer des pages, des namespaces, en actualisant les liens
Utilisateurs, groupes et ACL (Access Control List)
Le gestionnaire Multimédia
La conception : namespaces, groupes et droits
Exemple : une ASBL consacrée aux logiciels libres
Activités : ateliers mensuels, activités extérieures, activités récréatives, documentation, répertoire de logiciels, fonctionnement de l'ASBL (AG, réunions du CA, secrétariat, trésorerie, inventaire matériel…)
Groupes et utilisateurs : inscrits sur le site, membres de l'ASBL, membres du CA, administrateurs systèmes, groupes de travail thématiques, éditeurs/rédacteurs,…
Exemple : l'enseignement communal à Gnuville
Sous-parties : l'échevinat, l'enseignement fondamental (maternel et primaire), l'enseignement secondaire (général, technique de transition, technique de qualification et professionnel), l'enseignement de promotion sociale (niveaux secondaire et supérieur), l'académie de Musique (enseignement artistique), l'enseignement spécialisé, le CPMS
Les métiers : l'administration (direction générale, directions, comptabilité), les infrastructures (bâtiments, techniques générales, informatique), l'enseignement (y compris éducation artistique et culturelle, disciplines scientifiques et techniques, gymnastique et sport, langues) le psycho-médical, le soutien pédagogique,…
Les implantations : administration, écoles (maternelles, primaires, fondamentales), centre PMS, Régie des bâtiments,…
Les bénéficiaires : élèves du fondamental (4500 et leurs parents), élèves du secondaire (3000), élèves
Groupes : parents (fondamental), élèves secondaires
Scripts DokuWiki
- vérification du wiki installé : http://servername/wikipathname/doku.php?do=check
- utilitaire “grapher” de dokuwiki : https://www.dokuwiki.org/tips:grapher (représentation en graphe des pages et media
- ssh vmuser@ip_adress
- cd /var/www/html/wiki/bin
- sudo chown www-data:www-data grapher.php
- sudo chmod 660 grapher.php
- php grapher.php -h
- php grapher.php -d 0 -m none -o g.dot ns1:pagename
- php grapher.php -d 0 -m none -f gexf -o g.gexf ns1:pagename
- reprendre le fichier g.dot à traiter sur un autre PC où est installé graphviz (sudo apt-get install graphviz graphviz-doc)
- ou reprendre le fichier .gexf avec gephi
Astuces
- À classer :
- pandoc, conversions,…
- travail collaboratif
- includes
- XML-RPC
Dépannage
Les problèmes sont assez rares !
- Vérifier régulièrement l'espace disque disponible, éventuellement réduit dans une VM, et parfois encombré de fichiers de sauvegarde
- Si le site renvoie des pages blanches, il est nécessaire de purger le cache des pages correspondantes par exemple start → ajouter &purge=true : http://dns_site/wikiname/start&purge=true (ref : https://www.dokuwiki.org/faq:blankpage)
- Ou réinitialiser via la sauvegarde des paramètres de configuration du wiki dans le gestionnaire d'administration. Cf. https://www.dokuwiki.org/caching
Communauté et développement
- Forum : https://forum.dokuwiki.org/
- Sociétés spécialisées :
Des sites en DokuWiki
- Logiciels libres
- https://www.dokuwiki.org/dokuwiki → la documentation de DokuWiki est elle-même un des meilleurs exemples de DokuWiki
- https://doc.ubuntu-fr.org/ documentation Ubuntu en français
- Communautés Xfce et Xubuntu
- https://wiki.bluesabre.org/start Xubuntu Project Docs & Staging Wiki
- https://openwrt.org (wireless freedom)
- https://www.splitbrain.org/blog → aspect “blog”
- https://www.dokuwiki.org/tips:cms → Using DokuWiki as a lightweight CMS
- Education
- https://www.psychdb.com/home (psychomedical)
- Wikis personnels :
- http://lotar.altervista.org/wiki/ blog personnel utilisant DokuWiki et le thème Bootstrap3
- laboratoires universitaires
Produits incorporant DokuWiki en option :
- https://www.synology.com/en-us/dsm/packages (mediawiki est le seul autre wiki)
Des analyses, comparaisons,... sur DokuWiki
- https://index.woorank.com/en/reviews?technologies=dokuwiki → Top 2,060 websites using DokuWiki…
- https://www.inmotionhosting.com/support/edu/dokuwiki quelques documents d'aide sur DokuWiki