====== 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
----
[[all:bibles:linux:serveur:dokuwiki|Haut de page]]
===== Configuration apache =====
==== Configuration du site ====
=== Fichier de configuration ===
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/
Options +FollowSymLinks
AllowOverride All
order allow,deny
Allow from all
# Uncomment to implement server-side URL rewriting
# (cf. ).
# 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]
Require all denied
Require all denied
=== 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'
----
[[all:bibles:linux:serveur:dokuwiki|Haut de page]]
===== Configuration =====
==== Configuration post installation ====
La configuration se fait en lancant l'url [[http:///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 ====
- Aller dans le menu « Administrer » puis « Paramètres de configuration ».
- Chercher target dans la partie « Paramètres des liens ».
- 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 ===
- Aller dans le menu « Administrer » puis « Paramètres de configuration ».
- 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';
----
[[all:bibles:linux:serveur:dokuwiki|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/
=== Liste ===
^ Fonction ^ Page du plugin ^
| Couleur | [[https://www.dokuwiki.org/plugin:color|Color]] |
| Export au format pdf | [[https://www.dokuwiki.org/plugin:dw2pdf|Dw2Pdf]] |
| Edition de tableau | [[http://www.dokuwiki.org/plugin:edittable|Edittable]] |
| Gallerie d'images | [[http://www.dokuwiki.org/plugin:gallery|Gallery]] |
| Inclusion de section/page | [[https://www.dokuwiki.org/plugin:include|Include]] |
| Menu index des pages du wiki | [[https://www.dokuwiki.org/plugin:indexmenu|Indexmenu]] |
| Touches clavier | [[https://www.dokuwiki.org/plugin:keyboard|Keyboard]]|
| Renommage de page | [[http://www.dokuwiki.org/plugin:move|Move]] |
| Ajout de notes colorées | [[https://www.dokuwiki.org/plugin:note|Note]] |
| Export openoffice | [[https://www.dokuwiki.org/plugin:odt|ODT (export OpenOffice)]] |
| Cartographie | [[https://www.dokuwiki.org/plugin:openlayersmap|Openlayersmap]] |
| Export du site en html ou pdf | [[https://www.dokuwiki.org/plugin:siteexport|Site Export]] |
| Syntaxe de typographie | [[https://www.dokuwiki.org/plugin:typography|Typography]] |
| Mise à jour Wiki | [[http://www.dokuwiki.org/plugin:upgrade|Upgrade]] |
| Page d'accueil personnalisée | [[https://www.dokuwiki.org/plugin:userhomepage|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
* Installer le plugin [[https://www.dokuwiki.org/plugin:geophp|geophp]]. Egalement disponible sur [[https://sourceforge.net/projects/dokuwikispatial/files/geophp/|Sourceforge]].
* Installer le plugin [[https://www.dokuwiki.org/plugin:openlayersmap|OpenLayersMap]] par le gestionnaire ou manuellement.
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 :
* **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
if(toolbar){
toolbar[toolbar.length] = {"type":"format", "title":"note", "key":"",
"icon":"../../plugins/note/images/tb_note.png",
"open":"", "close":""
};
toolbar[toolbar.length] = {"type":"format", "title":"tip", "key":"",
"icon":"../../plugins/note/images/tb_tip.png",
"open":"", "close":""
};
toolbar[toolbar.length] = {"type":"format", "title":"important", "key":"",
"icon":"../../plugins/note/images/tb_important.png",
"open":"", "close":""
};
toolbar[toolbar.length] = {"type":"format", "title":"warning", "key":"",
"icon":"../../plugins/note/images/tb_warning.png",
"open":"", "close":""
};
}
==== 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 :
{{ :all:bibles:linux:serveur: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::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
----
[[all:bibles:linux:serveur:dokuwiki|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.
#!/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
----
[[all:bibles:linux:serveur:dokuwiki|Haut de page]]
===== Stylesheet =====
Les nouveaux styles doivent être définis dans le fichier conf/userstyle.css
==== Encadrer les titres de niveau 2 ====
h2 {
margin: 2px;
padding: 2em;
border: 2px solid __text_alt__;
}
==== Réduire la marge sous les titres de niveau 3 ====
h3 {
margin-bottom: 4px;
}
==== Définir la couleur des titres de niveau 2 ====
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 ====
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;
}
----
[[all:bibles:linux:serveur:dokuwiki|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
----
[[all:bibles:linux:serveur:dokuwiki|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]]
----
[[all:bibles:linux:serveur:dokuwiki|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. »
----
[[all:bibles:linux:serveur:dokuwiki|Haut de page]]
===== Sources =====
* [[https://sebsauvage.net/wiki/doku.php?id=dokuwiki|Astuces]]
* [[https://www.dokuwiki.org/devel:debugging|Debugging]]
----
[[all:bibles:linux:serveur:dokuwiki|Haut de page]]