sudo apt-get install apache2 php mysql-server libapache2-mod-php php-mysql php-ldap php-zip php-mbstring php-xml
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
<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>
sudo a2enmod ssl sudo a2ensite dokuwiki sudo systemctl reload apache2
sudo a2enmod ssl sudo systemctl reload apache2
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'
La configuration se fait en lancant l'url http://<url-wiki>/install.php
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 ».
Pour afficher les pages sur toute la largeur de l'écran :
Pour afficher le titre des pages dans les menus plutôt que le nom des pages :
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.
Il est possible de modifier la signature insérée avec le bouton prévu à cet effet.
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
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);
Positionnement du certificat EUROPE-Root-CA-B64.cer dans le répertoire /etc/ldap/certs
Modification du fichier conf/local.protected.php :
$conf['plugin']['authldap']['server'] = 'ldaps://server1 ldaps://server2 ...'; $conf['plugin']['authldap']['port'] = 636;
Editer le fichier conf/local.protected.php et modifier la ligne :
$conf['authtype'] = 'authldap';
par
$conf['authtype'] = 'authplain';
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>
| 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 |
Les plugins sont installés dans le sous répertoire lib/plugins.
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
sudo apt-get install php-gd
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.
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>
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":"<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>" }; }
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 :
{{page>user:@USER@:start}}
====== Contenu du site ======
==== Bibles ====
{{indexmenu>all:bibles.#1|context skipfile=/sidebar/}}
Fichiers de configuration.
Pages du wiki au format texte.
Historique des pages du Wiki.
Fichiers téléchargés (Images, documents, …).
Il est possible de faire un peu de ménage de temps en temps. Script automatique ci-dessous à adapter, il permet :
#!/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
Les nouveaux styles doivent être définis dans le fichier conf/userstyle.css
h2 { margin: 2px; padding: 2em; border: 2px solid __text_alt__; }
h3 { margin-bottom: 4px; }
h2 { background-color: #74992e; color:#ff7f27; }
| 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 |
| Valeur |
|---|
| medium |
| xx-small |
| x-small |
| small |
| large |
| x-large |
| xx-large |
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 */
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; }
Ajouter à la fin de l'url de la page ?do=debug ou &do=debug.
Les traces se trouvent dans le fichier data/cache/debug.log.
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
Ajouter simplement ?purge=true à l'url de la page ou bien &purge=true si l'url a déjà un paramètre.
Pour pouvoir utiliser la syntaxe complète de mailto dans un lien (pour ajouter quelqu'un en copie, remplir le sujet par exemple) :
mailto mailto://{NAME}
[[mailto>toto@free.fr?cc=truc@machin.com&subject=Sujet du mail&body=contenu du mail]]
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.