Dokuwiki

Installation

À partir de l'archive officielle

  • Installer quelques dépendances utiles (documentation officielle; dépendances du paquet Debian) :
    sudo aptitude install fonts-droid ghostscript gsfonts hicolor-icon-theme imagemagick imagemagick-6.q16 imagemagick-common libcroco3 libcupsfilters1 libcupsimage2 libcurl3 libdjvulibre-text libdjvulibre21 libfftw3-double3 libgomp1 libgs9 libgs9-common libijs-0.35 libilmbase6 libjbig2dec0 libjs-jquery-cookie libjs-jquery-ui liblcms2-2 liblqr-1-0 libltdl7 libmagickcore-6.q16-2 libmagickcore-6.q16-2-extra libmagickwand-6.q16-2 libnetpbm10 libonig2 libopenexr6 libpaper-utils libpaper1 libphp-simplepie libqdbm14 librsvg2-2 librsvg2-common libwmf0.2-7 netpbm php-geshi php-seclib php5-common php5-curl php5-intl php5-json php5-ldap php5-readline poppler-data psmisc
  • Utilisation de l'archive stable fournie sur le site officiel de Dokuwiki :
    cd /var/www/html/
    sudo wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
    sudo tar xzvf dokuwiki-stable.tgz
    sudo mv dokuwiki-201*-*/ dokuwiki/
  • Définition des droits :
    cd /var/www/html/dokuwiki
    sudo chown -R www-data:www-data data data/tmp lib/plugins lib/tpl
    sudo chown www-data:www-data conf
    sudo chmod -R 0755 lib
  • Se rendre sur la page : https://adresse.du.serveur/dokuwiki/install.php et saisir les informations pour compléter l'installation.
  • Une fois que le wiki est bien accessible, supprimer le fichier d'installation :
    sudo rm -f install.php

Serveur web

Penser également à vérifier les conseils de sécurité de la documentation officielle : https://www.dokuwiki.org/security

Apache2

Sans entrer dans les détails parce que ça nécessite une (ou plusieurs) page de documentation :

  • Installer un serveur Apache2 avec le support de PHP :
    sudo aptitude install apache2 php5 libapache2-mod-php5 php5-mcrypt php5-cli
  • Configurer au minimum le virtual host :

Cliquer pour afficher le vhost Apache2

Cliquer pour afficher le vhost Apache2

/etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
        ServerName wiki.domain.org
 
        ServerAdmin super@admin
        DocumentRoot /var/www/html
 
        <Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>
 
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
 
</VirtualHost>

Nginx

  • Exemple de virtualhost pour Nginx + php5-fpm pour interpréter le php avec l'adresse http://wiki.domain.org :

Cliquer pour afficher le vhost Nginx

Cliquer pour afficher le vhost Nginx

/etc/nginx/sites-enabled/wiki.domain.org
server {
  server_name wiki.domain.org;
  listen 80;
 
  autoindex off;
  client_max_body_size 15M;
  client_body_buffer_size 128k;
  index index.html index.htm index.php doku.php;
  access_log  /var/log/nginx/wiki.domain.org.access.log;
  error_log   /var/log/nginx/wiki.domain.org.error.log;
  root /var/www/dokuwiki;
 
  location / {
    try_files $uri $uri/ @dokuwiki;
  }
 
  location ~ ^/lib.*\.(gif|png|ico|jpg)$ {
    expires 30d;
  }
 
  location = /robots.txt  { access_log off; log_not_found off; }
  location = /favicon.ico { access_log off; log_not_found off; }
  location ~ /\.          { access_log off; log_not_found off; deny all; }
  location ~ ~$           { access_log off; log_not_found off; deny all; }
 
  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 ^/(.*) /doku.php?id=$1 last;
  }
 
  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass   unix:/var/run/php5-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
 
    fastcgi_intercept_errors        on;
    fastcgi_ignore_client_abort     off;
    fastcgi_connect_timeout 60;
    fastcgi_send_timeout 180;
    fastcgi_read_timeout 180;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
  }
 
  location ~ /(data|conf|bin|inc)/ {
    deny all;
  }
 
  location ~ /\.ht {
    deny  all;
  }
}

Mise à jour

Penser aux mises à jour d'extensions depuis l'interface web d'administration de Dokuwiki.

Le flux RSS/atom des versions de Dokuwiki permet de se tenir informé des sorties : https://github.com/splitbrain/dokuwiki/releases

À partir des sources

Quelques commandes générées à partir de la documentation officielle pour la mise à jour :

  • Répertoire d'installation de Dokuwiki :
    DW_DIR="/srv/web/maylug.org/applications/dokuwiki"
  • Sauvegarde de l'existant :
    sudo cp -prauf "${DW_DIR}"{,.bkp_$(date +%y%m%d-%H%M)}
  • Télécharger et extraire la dernière version :
    sudo sh -c "wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz -O - | tar xz"
  • Mettre à jour les fichiers :
    NEW_DW_VERSION=$(ls -1d /var/www/dokuwiki-* | tail -n1)
    sudo rsync -rlutD "${NEW_DW_VERSION}" "${DW_DIR}"
  • Supprimer les fichiers qui ne sont plus nécessaires :
    for line in $(cat ${DW_DIR}/data/deleted.files|\grep "^[a-z]"); do sudo rm -rf "${DW_DIR}"/"${line}"; done
  • On peut ensuite supprimer d'anciennes sauvegardes inutiles,…

Les messages d'upgrade apparaissent encore ?

  • Soit il faut patienter ~1 jour en laissant le temps à l'application de voir qu'elle est à jour
  • Ou directement supprimer le fichier qui contient ces messages :
    sudo rm -f "${DW_DIR}"/data/cache/messages.txt

Sources