Outils pour utilisateurs

Outils du site


Action unknown: siteexport_addpage
all:bibles:linux:serveur:dokuwiki

Dokuwiki


Installation

Packages prérequis

Ubuntu à partir de 18.04

sudo apt-get install apache2 php mysql-server libapache2-mod-php php-mysql php-ldap php-zip php-mbstring php-xml

Dokuwiki

cd /var/www/html
sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
sudo tar xvf dokuwiki-stable.tgz
sudo mv dokuwiki-*/ dokuwiki
sudo chown -R www-data:www-data dokuwiki

Haut de page

Configuration apache

Configuration du site

Fichier de configuration

dokuwiki.conf
<IfModule mod_ssl.c>
        <VirtualHost *:443>
                ServerName it.wiki.acs.altran.com
                DocumentRoot "/var/www/html/it.wiki"
                ErrorLog ${APACHE_LOG_DIR}/it.wiki.error.log
                CustomLog ${APACHE_LOG_DIR}/it.wiki.access.log combined
 
                Include "sites-available/security.conf"
 
                SSLEngine on
                SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
                SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
 
                AliasMatch ^/dokuwiki/sites/[^/]+$      /var/www/html/it.wiki/
                AliasMatch ^/dokuwiki/sites/[^/]+/(.*)$ /var/www/html/it.wiki/$1
                Alias      /dokuwiki                    /var/www/html/it.wiki/
 
                <Directory /var/www/html/it.wiki/>
                        Options +FollowSymLinks
                        AllowOverride All
                        order allow,deny
                        Allow from all
                        <IfModule mod_rewrite.c>
                                # Uncomment to implement server-side URL rewriting
                                # (cf. <http://www.dokuwiki.org/config:userewrite>).
                                        # Do *not* mix that with multisite!
                                #RewriteEngine on
                                #RewriteBase /dokuwiki
                                #RewriteRule ^lib                      - [L]
                                #RewriteRule ^doku.php                 - [L]
                                #RewriteRule ^feed.php                 - [L]
                                #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]
                                #RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
                        </IfModule>
                </Directory>
                <Directory /var/www/html/it.wiki/bin>
                        Require all denied
                </Directory>
                <Directory /var/www/html/it.wiki/data>
                        Require all denied
                </Directory>
         </VirtualHost>
</IfModule>

Prise en compte

sudo a2enmod ssl
sudo a2ensite dokuwiki
sudo systemctl reload apache2

Sécurisation

Activation ssl

sudo a2enmod ssl
sudo systemctl reload apache2
Eventuellement générer un certificat pour le nom de domaine.

Sécurisation des entêtes http

sudo a2enmod headers
sudo systemctl reload apache2

Ajouter les lignes suivantes à la configuration apache :

Header always set Strict-Transport-Security "max-age=15552001; includeSubDomains;"
Header always append X-Frame-Options DENY
Header set X-Content-Type-Options nosniff
Header set X-XSS-Protection "1; mode=block"
Header set Content-Security-Policy "default-src 'self' ; script-src 'self' 'unsafe-inline'; img-src 'self' data: *.openstreetmap.org; style-src 'self' 'unsafe-inline'"
Header set X-Permitted-Cross-Domain-Policies "none"
Header set Referrer-Policy "no-referrer"
Header set Expect-CT 'enforce, max-age=43200'

Haut de page

Configuration

Configuration post installation

La configuration se fait en lancant l'url http://<url-wiki>/install.php

Gestion des droits

Aller dans le menu « Administrer » puis « Gestion de la liste des contrôles d'accès (ACL) ».

Sélectionner la racine choisir le groupe @ALL et mettre autorisation « Aucune ».

Choisir le groupe @user et mettre autorisation « Envoyer ».

Largeur écran

Pour afficher les pages sur toute la largeur de l'écran :

  • Cliquer sur « Administrer ».
  • Puis choisir « Paramètres de style du thème (template) »
  • Modifier le paramètre « Largeur du site complet » avec 100%

Affichage titres

Pour afficher le titre des pages dans les menus plutôt que le nom des pages :

  • Cliquer sur « Administrer ».
  • Puis choisir « Paramètres de configuration »
  • Aller à la partie « Paramètre d'affichage » en cliquant sur le menu correspondant sur la droite.
  • Changer le paramètre « Utiliser le titre de premier niveau pour le nom de la page » par « Toujours » ou « Navigation seulement »

Ouverture des liens

  1. Aller dans le menu « Administrer » puis « Paramètres de configuration ».
  2. Chercher target dans la partie « Paramètres des liens ».
  3. Définir la cible désirée en fonction du type de lien
  • _blank : ouvre un lien dans une nouvelle fenêtre
  • _tab : ouvre un lien dans un nouvel onglet.
  • _self ou vide : ouvre un lien dans la même fenêtre

Les autres valeurs possibles comme _parent ou _top ne sont utiles que si votre thème utilise les frames. Dans ce cas, vos devriez savoir à quoi ils servent.

Changement signature

Il est possible de modifier la signature insérée avec le bouton prévu à cet effet.

Paramètre

  1. Aller dans le menu « Administrer » puis « Paramètres de configuration ».
  2. Chercher signature dans la partie « Paramètres d'affichage».

Il est possible de modifier l'interprétation par exemple pour ajouter un lien en haut de page on mettra en paramètre :

[[@NAMESPACE@|Haut de page]]

et on modifiera le script comme indiqué ci-dessous

Modification script php

Possibilité de modifier la fonction toolbar_signature dans le script inc/toolbar.php. Ajouter la ligne suivante pour interpréter un paramètre @NAMESPACE@ correspondant au namespace de la page courante par exemple :

 $sig = str_replace('@NAMESPACE@',$INFO['id'],$sig);

Identification

Passage en LDAPS

  • Certificat

Positionnement du certificat EUROPE-Root-CA-B64.cer dans le répertoire /etc/ldap/certs

  • Prise en compte

Modification du fichier conf/local.protected.php :

$conf['plugin']['authldap']['server'] = 'ldaps://server1 ldaps://server2  ...';
$conf['plugin']['authldap']['port'] = 636;
La précision du port n'est pas indispensable étant donné que l'on utilise le port par défaut pour le protocole ldaps.

Retour en identification locale

Editer le fichier conf/local.protected.php et modifier la ligne :

$conf['authtype'] = 'authldap';

par

$conf['authtype'] = 'authplain';

Haut de page

Plugins

Installation

Manuelle

En cas de problème il est possible de procéder à une installation manuelle (ou mise à jour). Il suffit de télécharger le paquet, d'extraire le fichier plugin.info.txt qui contient le répertoire de destination avec la variable base. Il suffit ensuite d'extraire l'archive dans le répertoire lib/plugins/<base>

Liste

Fonction Page du plugin
Couleur Color
Export au format pdf Dw2Pdf
Edition de tableau Edittable
Gallerie d'images Gallery
Inclusion de section/page Include
Menu index des pages du wiki Indexmenu
Touches clavier Keyboard
Renommage de page Move
Ajout de notes colorées Note
Export openoffice ODT (export OpenOffice)
Cartographie Openlayersmap
Export du site en html ou pdf Site Export
Syntaxe de typographie Typography
Mise à jour Wiki Upgrade
Page d'accueil personnalisée User homepage

Répertoire d'installation

Les plugins sont installés dans le sous répertoire lib/plugins.

Mise à jour

En cas d'erreur lié à un dépassement de tempo, modifier la variable max_execution_time dans le fichier /etc/php/8.1/apache2/php.ini (30s par défaut)

max_execution_time = 180

Puis redémarrer apache

sudo systemctl restart apache2

Openlayers map

Installation

  • Installer le package php-gd
sudo apt-get install php-gd
En cas d'installation manuelle, penser à activer le plugin ensuite.

Ajout du type mime gpx

Ajouter la ligne suivante dans le fichier conf/mime.local.conf (Créer le fichier si nécessaire).

gpx      !application/gpx+xml

Ajouter une icône pour le type gpx sous lib/images/fileicons.

A partir de la version 2022-07-31 Igor, il faut mettre un fichier svg sous le répertoire lib/images/fileicons/svg

Utilisation

Uploader trace GPX

Ajouter la trace GPX à l'aide du gestionnaire de média « Ajouter des images ou autres fichiers ».

Insérer le code pour la carte

A l'aide du bouton spécifique ou en ajoutant directement le code :

<olmap id="cartex" width="600px" height="400px" zoom="15" lat="45.13" lon="2.42" baselyr="OpenStreetMap" gpxfile=":chemin:vers:le:fichier:gpx ">
</olmap>
  • id : identifiant de la carte, unique sur la page.
  • width : facultatif (valeur par défaut 550px).
  • height : facultatif (valeur par défaut 450px).
  • zoom : facultatif (autozoom par défaut).
  • lat : facultatif. Permet de centrer correctement la carte.
  • lon : facultatif. Permet de centrer correctement la carte.
  • baselyr : facultatif. OpenStreetMap par défaut.
  • gpxfile : facultatif. Permet d'afficher une trace GPX sur la carte.
Valeurs par défaut dans le fichier de conf lib/plugins/openlayersmap/conf/default.php
Il faut un espace derrière le nom du fichier gpx sinon la carte ne s'affiche pas.

Note

Pour ajouter des boutons à l'édition pour ajouter les 4 types de notes, ajouter le fichier scripts.js dans le répertoire lib/plugins/note

script.js
if(toolbar){
    toolbar[toolbar.length] = {"type":"format", "title":"note", "key":"",
                               "icon":"../../plugins/note/images/tb_note.png",
                               "open":"<note>", "close":"</note>"
                              };
    toolbar[toolbar.length] = {"type":"format", "title":"tip", "key":"",
                               "icon":"../../plugins/note/images/tb_tip.png",
                               "open":"<note tip>", "close":"</note>"
                              };
    toolbar[toolbar.length] = {"type":"format", "title":"important", "key":"",
                               "icon":"../../plugins/note/images/tb_important.png",
                               "open":"<note important>", "close":"</note>"
                              };
    toolbar[toolbar.length] = {"type":"format", "title":"warning", "key":"",
                               "icon":"../../plugins/note/images/tb_warning.png",
                               "open":"<note warning>", "close":"</note>"
                              };
}

Boutons

Pour ajouter des boutons pour les sections de code ou les touches clavier, se rendre dans le « Gestionnaire d'extension », faire une « installation manuelle » en sélectionnant le fichier zip suivant :

boutons.zip

User homepage

Activation

  • Aller dans les paramètres de configuration du plugin Userhomepage
  • Cocher la case « Créer les espaces privés des utilisateurs »
  • Remplacer le contenu de la page start.txt à la racine par
{{page>user:@USER@:start}}
  • Créer le contenu désiré sous user:<login>:start. Par exemple :
====== Contenu du site ======

==== Bibles ====

{{indexmenu>all:bibles.#1|context skipfile=/sidebar/}}
Attention de donner l'accès à tout le monde au fichier start.txt à la racine

Haut de page

Répertoires

Liste

conf

Fichiers de configuration.

data/pages

Pages du wiki au format texte.

data/attic

Historique des pages du Wiki.

data/media

Fichiers téléchargés (Images, documents, …).

Nettoyage

Il est possible de faire un peu de ménage de temps en temps. Script automatique ci-dessous à adapter, il permet :

  • Suppression des fichiers historiques de plus de 30 jours (à voir si l'on souhaite garder l'historique des pages … ou pas).
  • Suppression des fichiers de verrouillage de plus de 1 jour.
  • Suppression des fichiers du cache de plus de 30 jours.
  • Suppression des répertoires vides.
cleanup-wiki.sh
#!/bin/bash
 
cleanup()
{
        local data_path="$1"        # full path to data directory of wiki
        local retention_days="$2"   # number of days after which old files are to be removed
 
        # purge files older than ${retention_days} days from attic and media_attic (old revisions)
        find "${data_path}"/{media_,}attic/ -type f -not -name _dummy -mtime +${retention_days} -delete
 
        # remove stale lock files (files which are 1-2 days old)
        find "${data_path}"/locks/ -name '*.lock' -type f -mtime +1 -delete
 
        # remove files older than ${retention_days} days from the cache
        find "${data_path}"/cache/?/ -type f -not -name _dummy -mtime +${retention_days} -delete
 
        # remove empty directories
        find "${data_path}"/{attic,cache,index,locks,media,media_attic,media_meta,meta,pages,tmp}/ -mindepth 1 -type d -empty -delete
}
 
# cleanup DokuWiki installations (path to datadir, number of days)
# some examples:
 
if [ $# -eq 1 ]; then
        REP_WIKI="$1/data"
        if [ -d ${REP_WIKI} ]; then
                cleanup ${REP_WIKI} 30
        else
                printf "\n\t>>> Répertoire ${REP_WIKI} inexistant\n\n"
                exit 1
        fi
else
        printf "\n\t>>> Passer le répertoire du Dokuwiki en paramètre\n\n"
        exit 1
fi

Haut de page

Stylesheet

Les nouveaux styles doivent être définis dans le fichier conf/userstyle.css

Encadrer les titres de niveau 2

userstyle.css
h2 {
  margin: 2px;
  padding: 2em;
  border: 2px solid __text_alt__;
}

Réduire la marge sous les titres de niveau 3

userstyle.css
h3 {
  margin-bottom: 4px;
}

Définir la couleur des titres de niveau 2

userstyle.css
h2 {
  background-color: #74992e;
  color:#ff7f27;
}

Couleurs : color

Couleur Code
Blanc #ffffff
Rose #ffaec9
Rouge #ed1c24
Orange #ff7f27
Or #ffc90e
Jaune #fff200
Vert #22b14c
Vert clair #b5e61d
Turquoise #00a2e8
Bleu ciel #99d9ea
Marron #a44340
Noir #000000

Taille : font-size

Valeur
medium
xx-small
x-small
small
large
x-large
xx-large

Style de caractères

font-style:normal;
font-style:italic;                              /* texte en italique                                */
font-weight: normal;
font-weight: bold;                              /* texte gras                                       */
font-weight: 100;                               /* normal=400 bold 700                              */
font-weight: 900;
text-decoration: normal;                        
text-decoration: underline;                     /* texte souligné                                   */
text-decoration: line-through;                  /* texte barré                                      */
text-decoration: underline dotted;              /* texte souligné de pointillés                     */
text-decoration: underline dotted red;          /* texte souligné de pointillés rouges              */
text-decoration: green wavy underline;          /* texte souligné d'une vague de couleur verte      */
text-decoration: underline overline #FF3028;    /* texte souligné et surligné avec la couleur codée */

Exemple de fichier

userstyle.css
h2 {
  margin: 2px;
  padding: 2em;
  border: 2px solid __text_alt__;
}
 
h3 {
  color:#ff7f27;
  font-style:normal;
  font-weight: bold;
  text-decoration: underline;
  font-size: large;
}

Haut de page

Syntaxe

Syntax Highlighting

  • apache
  • awk
  • bash
  • basic4gl
  • batch
  • cmake
  • cobol
  • c
  • cpp
  • csharp
  • css
  • delphi
  • dos
  • fortran
  • html
  • html5
  • ini
  • inno
  • java5
  • java
  • javascript
  • lisp
  • make
  • mysql
  • nagios
  • nginx
  • oracle11
  • oracle8
  • pascal
  • perl6
  • perl
  • php
  • postgresql
  • postscript
  • powershell
  • prolog
  • properties
  • python
  • qbasic
  • reg
  • rexx
  • rpmspec
  • ruby
  • sql
  • sshconfig
  • tcl
  • teraterm
  • text
  • vb
  • vbscript
  • vim
  • xml
  • yaml

Haut de page

Trucs & Astuces

Debug

Mise en place

Ajouter à la fin de l'url de la page ?do=debug ou &do=debug.

Résultat

Les traces se trouvent dans le fichier data/cache/debug.log.

Vider le cache

Pour toutes les pages

Enregistrer de nouveau les paramètres de configuration à partir du menu « Administrer / Paramètres de configuration » ou bien simplement en modifiant la date du fichier par la commande touch :

touch conf/local.php

Pour une page particulière

Ajouter simplement ?purge=true à l'url de la page ou bien &purge=true si l'url a déjà un paramètre.

Mailto

Pour pouvoir utiliser la syntaxe complète de mailto dans un lien (pour ajouter quelqu'un en copie, remplir le sujet par exemple) :

  • Créer le fichier conf/interwiki.local.conf avec le contenu suivant :
mailto    mailto://{NAME}
  • Dans le wiki ajouter un lien du type :
[[mailto>toto@free.fr?cc=truc@machin.com&subject=Sujet du mail&body=contenu du mail]]

Haut de page

Dépannage

IndexMenu plugin

Message d'erreur

Indexmenu Plugin: If you use the 'js'-option of the indexmenu plugin, you have to disable the 'defer_js'-setting. This setting is temporary, in the future the indexmenu plugin will be improved.

Solution

  • Cliquer sur « Administrer ».
  • Puis choisir « Paramètres de configuration »
  • Aller à la partie « Fonctionnalités expérimentales » en cliquant sur le menu correspondant sur la droite.
  • Décocher la ligne correspondant à defer_js « Attendre que le code HTML des pages soit analysé avant d'exécuter le javascript. Améliore la vitesse de chargement perçue, mais pourrait casser un petit nombre de greffons. »

Haut de page

Sources

all/bibles/linux/serveur/dokuwiki.txt · Dernière modification : de omeylhoc