Ceci est une ancienne révision du document !
Table des matières
Dokuwiki
Installation docker
J'utilise l'excellent docker NGinx/PHP.
docker run -d --restart=always --name="Nginx_Dokuwiki" -p 8081:80 -e "PUID=`id -u florian`" -e "PGID=`id -g florian`" -v /mnt/Raid/Documents_de_Florian/Documents_NAS/Dockers/Docker_Data/Nginx_Dokuwiki/:/var/www/html richarvey/nginx-php-fpm
Plugins
Plugins installés
- Add New Page
- Ckgedit
- Gallery Plugin
- Indexmenu Plugin
- Move Plugin
- Wrap Plugin
- Meta Plugin (Modification du Title de la page d'accueil pour un aspect personnalisé sur la recherche google)
- Socialite plugin
- Video Sharing Site Plugin
Optimisation pour le plugin Ckgedit
Ajouter la coloration syntaxique Arduino
Récupérer sur github le code php a copier dans :
vendor/easybook/geshi/geshi/
Rappel: pour activer geshi dans un bloque de code, ajouter en en tête : geshi: type_de_code nom_du_fichier
Exemple :
- script.sh
#!/bin/bash echo "Mon super code" exit 0
Ajout icones wrap dans ckgedit
Procédure sur le wiki de Niko : Lien
Modifier le comportement du retour chariot de ckgedit
Par défaut le retour chariot créé un nouveau paragraphe. Afin de faire un retour à la ligne simple de type </br> :
Ajouter le paramètre de configuration b.enterMode=2
dans le fichier de configuration :
lib/plugins/ckgedit/ckeditor/config.js
Documentation associée : CKEDITOR.config
Penser à vider le cache du navigateur
Ajuster la hauteur par défaut de la fenêtre d'édition
Modifier le fichier :
lib/plugins/ckgedit/edit.php
J'ai mis 500 pixels :
Intégration Google Analytics
Ajouter le js code en vigueur proposé par Google avant la balide </head> dans :
lib/tpl/dokuwiki/main.php lib/tpl/dokuwiki/detail.php
Penser à ajuster et vérifier l'indexation de son site via Google Search Console.
Optimisation du template
Largeur en pleine page
Pour que les pages s'affichent au maximum de la largeur du navigateur :
Dans lib/tpl/dokuwiki/style.ini
__site_width__ = "100%" ; @ini_site_width
Sidebar plus large
Dans lib/tpl/dokuwiki/style.ini
__sidebar_width__ = "18em" ; @ini_sidebar_width
Sécuriser son répertoire data dans le docker Nginx
Modifier le fichier de conf /etc/nginx/sites-enabled/default.conf
location ~ ^/(data|conf|bin|inc)/ { deny all; }
Plus d'info : https://www.dokuwiki.org/security#web_access_security
Forcer le mode progressif des miniatures photo
Pour un affichage plus rapide des photos pour l'utilisateur, on force la création de miniatures en cache en mode progressif :
Installer imagemagik dans le docker : apk add imagemagik
(pour alpinelinux)
Configurer le lien du binaire convert dans l'interface :
On force la conversion avec le paramètre -interlace Plane
Si l'interface de configuration interdit l'ajout de paramètres à convert, modifier à la main le fichier conf/local.php
:
$conf['im_convert'] = '/usr/bin/convert -
interlace Plane';
Penser à purger tout le cache pour recréation des miniatures.
Et ensuite ?
Quelques prises de notes rapides pour
- la mise en place d'un sous domaine : sombre idée de vouloir mettre en place un nom de domaine dédié ovh avec des sous domaines pointant sur différents dockers par l'intermediaire de Traefic Reverse Proxy
- la réécriture propre d'url → pour faire … propre
Réécriture propre d'url : Activation du mode rewrite
https://www.dokuwiki.org/config:userewrite
On peut modifier le fichier local.php :
$conf['userewrite'] = '1'; $conf['useslash'] = 1;
Il faut adapter la conf Nginx, un test qui fonctionne :
C'est un mix de la conf proposée par dokuwiki et celle en place pour le docker de ric_harvey :
https://www.dokuwiki.org/rewrite
https://gitlab.com/ric_harvey/nginx-php-fpm/blob/master/conf/nginx-site.conf
server { listen 80; server_name floriantales.hd.free.fr; #maximum file upload size is 4MB - change accordingly if needed client_max_body_size 4M; client_body_buffer_size 128k; root /var/www/html; index doku.php; location / { try_files $uri $uri/ @dokuwiki; } location @dokuwiki { rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;\\ rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; rewrite ^/(?!lib/)(.*) /doku.php?id=$1&$args last; } location ~ \.php$ { try_files $uri =404;\\ if (!-f $request_filename) { return 404; } fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_index doku.php; include fastcgi_params; } }
Il va falloir modifier la façon de gérer le docker en passant la conf du docker sous GIT : https://gitlab.com/ric_harvey/nginx-php-fpm/blob/master/docs/nginx_configs.md
Pour le test je modifie directement /etc/nginx/sites-enabled/default.conf
Un sous domaine chez OVH :
On fait un CNAME dans la conf DNS d'OVH :
doku IN CNAME floriantales.fr.