DokuWiki
À intégrer :
dokuwiki sur raspberry ?
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,…
-
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 :
Historique du projet
Installation et administration système
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
-
décompresser l’archive : sudo tar -xzvf dokuwiki-stable.tgz --strip-components=1
effacer l’archive : sudo rm dokuwiki-stable.tgz
-
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 {} \;
-
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 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)
-
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
Sécurisation, configuration
Quelle est la structure du wiki sur le serveur ?
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
-
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
réinstallation (à vérifier en 2020 !)
cd /var/www/html puis effacement de l'éventuelle version antérieure : sudo rm -rf wiki
cd /home/vmuser copie d'une archive dokuwiki à réinstaller à cet emplacement
extraction par tar –force-local -xzvf ./saved_dokuwiki_2013-08-28_03:17:01.tar.gz
cd /home/vmuser/path_a_verifier
sudo mv wiki /var/www/html puis cd /var/www/html
-
sudo chown -R www-data:www-data /var/www/wiki
cd /var/www/html/wiki
fichiers : sudo find . ! -type d -exec chmod 660 {} \;
répertoires : sudo find . -type d -exec chmod 770 {} \;
Pages et syntaxe d'écriture
Les documents individuels sont des pages, écrites en suivant un
Langage de balisage léger propre à DokuWiki, mais pour lequel il existe des outils de conversion vers et à partir d'autres formats. Le serveur assure automatiquement la génération des pages en
HTML, consultable dans un navigateur web. Il existe des extensions permettant d'autres formats de sortie, des conventions de syntaxe additionnelles, ou d'autres fonctionnalités d'édition ou de présentation.
Syntaxe :
Pour créer une page, il suffit de créer un lien vers une page inexistante
Pour éditer une page, il suffit de sélectionner l'outil “Modifier cette page” (souvent un symbole de crayon d'une barre d'outil latérale. L'éditeur comprend une barre d'outil supérieure avec de nombreuses commandes d'édition classiques. Les niveaux de titres utilisent les caractères ”=” sur 6 niveaux (de “======” à “=”).
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
Structure en namespaces
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 subnamespaces) 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
La navigation hypertextuelle entre les pages utilise bien entendu des balises de lien, analogues aux balises http habituelles.
Utilisateurs, groupes
Les utilisateurs enregistrés peuvent ouvrir une session en utilisant le bouton de connexion. Si l’administrateur du wiki ne l'a pas désactivé, les visiteurs peuvent s'enregistrer sur le wiki. Sinon, ils doivent demander un code d'accès par un autre moyen. Suivant les réglages du site, les pages et fonctionnalités (droit d'édition,…) sont accessibles de manière différente et en fonction des utilisateurs (voir les ACL).
Des groupes d'utilisateurs partageant les mêmes droits peuvent être créés. Les groupes sont représentés par un préfixe, le caractère: @ suivi du nom du groupe. Il existe des groupes spéciaux, comme @ALL (tout le monde, même les utilisateurs non connectés) et @user (tous les inscrits).
ACL (Access Control List)
Des restrictions d'accès peuvent être liées aux pages et aux espaces de noms. Il y a sept permissions, d'importances croissantes :
aucune (none)
lire (read)
modifier (edit)
créer (create)
téléverser sur le serveur (upload)
effacer (delete)
administrer (admin)
Les accès sont déterminés pour des utilisateurs ou groupes d'utilisateur. On utilise le groupe @ALL (tout le monde) pour limiter l'accès à tous les utilisateurs (comme configuration par défaut) et autoriser dans une règle suivante certaines permissions pour quelques utilisateurs (ou groupes) choisis.
Détails : https://www.dokuwiki.org/fr:acl
Le Wiki permet de sauvegarder et d'afficher des fichiers media : images, sons et vidéos, avec les possibilités d'interaction classiques pour ces deux dernier formats (démarrer, arrêter, défiler avec un curseur temporel). D'autres fichiers peuvent aussi être mis à disposition : pdfs, documents de suites bureautiques, archives compressées,…
Pour insérer un fichier directement dans une page en cours d'édition, mieux vaut utiliser le gestionnaire disponible dans la barre d'outil d'édition. Sinon, vous pouvez gérer vos médias à l'aide du Gestionnaire Multimédia en mode pleine page.
Les documents sont sauvegardés dans une arborescence identique aux namespaces des pages.
Pour l'insertion des images, sons ou vidéos, il est possible de régler la taille et la position (droite, gauche, centrée) de l'affichage.
Des types mime additionnels peuvent être ajoutés via le fichier de configuration local mime.local.conf (you need to create
En préfixant le type par un point d'exclamation (!), cela force le navigateur à proposer la bote de dialogue de téléchargement.
Références
Extensions
Forme :
-
-
catlist : rend une liste en arborescence de pages d'un namespace
Chem, formatage de formules de substances chimiques
Cloud, nuage de mots utilisés
-
CSV, affichage de données au format csv (d'un tableur,…). Il faut autoriser les csv via un fichier conf/mime.local.conf à créer. Cf. la documentation :
https://www.dokuwiki.org/mime.
-
Diagram, construction de diagrammes
-
-
-
Gallery, insertion automatique d'une galerie d'images
gh, incorpore des fichiers ou parties de fichiers de GitHub
hidden permet de cacher/révéler des portions de textes
html5video incorpore des vidéos lues nativement par le navigateur (HTML5) → ajouter les types mime vidéo à la configuration de DokuWiki
iframe permet la visualisation dans un cadre d'une source externe via son
URL
Include inclut une autre page ou section dans la page courante
keyboard affiche du texte comme des touches de clavier (
CTRL+
C, …)
-
installable via le gestionnaire d'extensions
librairies additionnelles sur le serveur :
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
-
-
-
PyCode incorpore du code python d'un site distant (Bitbucket, GitHub)
semantic (+ action SEO) permet des visualisations associées à certains thèmes comme bootstrap3
-
TocTweak formattage spécifique de la table des matières
-
-
Wrap, nombreuses possibilités de présentation (cf. les démos)
Fonctionnalités
-
CAPTCHA : vérification pour lutter contre les robots spammeurs
-
CookieLaw, affiche un texte sur l'existence de cookies
-
dw2pdf, export de pages DokuWiki au format pdf (nécessite le paquet php5-gd)
-
-
-
doodle4 planification de réunions, votes,…
Calendriers, agenda :
davcal → synchronisable Calendar
-
minical → each day is represented by a wiki page (uniquement par mois)
yearbox → year or recent month(s) calendars, with a new page link for each day
schedule → représentation d'événements (localisation, contenu, moment,…)
réseaux sociaux (Facebook, Twitter, Instagram,…)
-
-
-
socialite → responsive lightweight social share buttons
-
Forum et inclusion de forum, commentaires,…
édition avancée
-
revealjs : présentation (slideshow) directement dans le navigateur web d'une page DokuWiki
-
:
Logo & favicon ??
Divers
Thèmes (templates)
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
-
-
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
Passage en https, avec des certificats SSL classiques, ou via Let's encrypt
Astuces
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
-
plugin backup et fichier restant dans le répertoire /var/www/wiki/data/media_attic/wiki/backup → purger manuellement
Communauté et développement
Des sites en DokuWiki
Produits incorporant DokuWiki en option :
Des analyses, comparaisons,... sur DokuWiki
Dans la presse et les blogs...