Technology and me

Dokuwiki et nginx

Fichier complet

dokuwiki-config
server {
 
        listen [::]:80;
 
        server_name blog.slucas.fr blog-ipv6.slucas.fr;
 
        access_log  /var/log/nginx/slucas.access.log;
        error_log /var/log/nginx/slucas.error.log;
        root   /var/www/slucas-wiki;
        index doku.php;
 
        location ~ ^/(data|conf|bin|inc) {
                return 404;
        }
 
        location ~ ^/lib.*\.(gif|png|ico|jpg)$ {
                expires 31d;
        }
 
        location /tips {
                rewrite ^(.*)$ http://blog.slucas.fr/en$1 permanent;
        }
 
        location / {
                try_files $uri $uri/ @dokuwiki;
        }
 
        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 ^/tag/(.*) /doku.php?id=tag:$1&do=showtag&tag=tag:$1 last;
                rewrite ^/(.*) /doku.php?id=$1&$args last;
        }
 
        location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_pass    unix:/tmp/fcgi.sock;
        }
}

Explications

        location ~ ^/(data|conf|bin|inc) {
                return 404;
        }

Voir Mise à jour Dokuwiki Anteater et Nginx.

        location ~ ^/lib.*\.(gif|png|ico|jpg)$ {
                expires 31d;
        }

Voir Paramétrage de la compression avec nginx

        location /tips {
                rewrite ^(.*)$ http://blog.slucas.fr/en$1 permanent;
        }

C'est juste pour rattraper une erreur de namespace, je redirige http://blog.slucas.fr/tips/* vers http://blog.slucas.fr/en/tips/*.

        location / {
                try_files $uri $uri/ @dokuwiki;
        }

        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 ^/tag/(.*) /doku.php?id=tag:$1&do=showtag&tag=tag:$1 last;
                rewrite ^/(.*) /doku.php?id=$1&$args last;
        }

Ici on gère l'url rewriting pour avoir des urls propres (sans ? et :). Voir URL propres avec Dokuwiki.

        location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_pass    unix:/tmp/fcgi.sock;
        }

On gère l'appel au fastcgi php. Voir Installation de nginx sous Debian et Nginx PHP Fastcgi avec socket Unix.

RSS Feed
Social ...
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : CC Attribution-Noncommercial-Share Alike 3.0 Unported