====== 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]]