Dokuwiki

Dokuwiki est une de mes applications favorites, je l'aime pour sa simplicité, sa rapidité et le nombre ahurissant de plugins. Je m'en sers régulièrement comme carnet de notes ou tout simplement pour ce wiki.

Installation de Dokuwiki

La procédure d'installation est simple, il faut simplement créer un répertoire, télécharger l'archive Dokuwiki et l'extraire. Nous finirons par changer les autorisations pour que cela corresponde à l'utilisateur www-data.

Pour cela exécuter les commandes suivantes :

sudo mkdir /var/www/dokuwiki
cd /var/www/dokuwiki
sudo wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
sudo tar --overwrite -xzvf dokuwiki-stable.tgz --strip 1
sudo rm dokuwiki-stable.tgz
sudo chown -R www-data:www-data /var/www/dokuwiki/

Configuration Nginx

En sous URL (www.monsite.fr/wiki)

A insérer dans une partie server du fichier de configuration Nginx

#DOKUWIKI
 location ~  /wiki(.+\.php)$  {
    alias /var/www/dokuwiki$1;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/dokuwiki$1;
    include fastcgi_params;
  }

location /wiki {
    alias  /var/www/dokuwiki/;
    try_files $uri $uri/ /index.php;
}

location ~ ^/wiki/lib($|/.*)  {
    alias /var/www/dokuwiki/lib$1;
    expires 30d;
}

location ~ ^/wiki/data/ {
        deny all;
}

location ~ ^/wiki/conf/ {
        deny all;
}

En sous domaine (http://wiki.monsite.fr/)

server {
  server_name wiki.monsite.fr;
  listen 80;
  index index.html index.htm index.php doku.php;
  access_log  /var/log/nginx/wiki.monsite.fr.access.log;
  error_log  /var/log/nginx/wiki.monsite.fr.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 ^/sitemap.xml.gz /doku.php?do=sitemap last;
    rewrite ^/sitemap.xml /doku.php?do=sitemap last;
    rewrite ^/(.*) /doku.php?id=$1 last;
  }

  location ~ \.php$ {
      try_files $uri =404;
    root /var/www/dokuwiki;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 256 4k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
    fastcgi_intercept_errors on;
  }

  location ~ /(data|conf|bin|inc)/ {
    deny all;
  }

  location ~ /\.ht {
    deny  all;
  }
}

Installation de Dokuwiki

Une fois Nginx configuré correctement, ne pas oublier de le redémarrer

sudo /etc/init.d/nginx restart

Maintenant, rendez-vous suivant votre configuration sur http://www.monsite.fr/wiki/install.php ou http://wiki.monsite.fr/install.php et suivre la procédure complète.
Une fois fini ne pas oublier de supprimer le script d'installation avec la commande suivante :

sudo rm /var/www/dokuwiki/install.php

Bonus

Script d'update automatique

Voici un petit script d'update automatique réalisé par mes soins. Il permet de mettre à jour automatiquement Dokuwiki en téléchargeant la dernière version stable disponible.

#!/bin/sh
 
# The path to the root of the wiki
droot=/var/www/dokuwiki
# The backup path
bdir=/var/backup/dokuwiki
 
# Backup existing installation
sudo mkdir $bdir
sudo cp -R $droot/* $bdir
 
# Download Dokuwiki stable release
sudo wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
sudo tar --overwrite -xzvf dokuwiki-stable.tgz -C $droot --strip 1
sudo rm dokuwiki-stable.tgz
 
#Changing permissions
sudo chown -R www-data:www-data $droot
sudo chmod -R 755 $droot/data
sudo chmod 755 $droot/lib/plugins
sudo chmod 755 $droot/lib
 
# Deleting unused  files
cd $droot
grep -Ev '^($|#)' data/deleted.files | sudo xargs -n 1 rm -vf
sudo rm data/cache/messages.txt

Voir aussi

Références

Liens externes

  • Partager le signet (social bookmarking)
  • Partager "Dokuwiki" sur del.icio.us
  • Partager "Dokuwiki" sur Digg
  • Partager "Dokuwiki" sur blogmarks
  • Partager "Dokuwiki" sur Google
  • Partager "Dokuwiki" sur Facebook
  • Partager "Dokuwiki" sur Twitter