Dokuwiki está instalada en un virtualhost de Nginx con el siguiente archivo de configuración:
server { listen 80; server_name wiki.hi.ee.upm.es; root /var/www/wiki.hi.ee.upm.es; index doku.php; # Logs access_log /habitat/www/log/hi/wiki.visitas.log; error_log /habitat/www/log/errores.log; include gzip.conf; 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 '/.well-known' { default_type "text/plain"; } location ~ \.(html|php)$ { try_files $uri =404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; fastcgi_param REDIRECT_STATUS 200; #fastcgi_index doku.php; #fastcgi_param PATH_INFO $uri; #necessary for URL rewrite fastcgi_pass unix:/run/wiki.sock; } include prohibido.rules; location ~ ^/dokuwiki/(data/|conf/|bin/|inc/|install.php)/ { # secure DokuWiki deny all; } # serve static files #location ~ ^/lib/.+\.(css|gif|js|png)$ { # root /var/www; # expires 30d; #} }
Más información sobre cómo configurar Dokuwiki en Debian bajo NGinx.
Dokuwiki utiliza archivos de texto plano para guardar los datos. Estos archivos se encuentran en la carpeta data/
. Para que esto no sea un agujero de seguridad hay que configurar correctamente los permisos de Dokuwiki.
sudo setfacl -d -m u::rwX,g::rX,o::- /var/www/wiki.hi.ee.upm.es sudo chmod -R g-rwx /var/www/wiki.hi.ee.upm.es/data sudo chmod -R o-rwx /var/www/wiki.hi.ee.upm.es/data
Más sobre seguridad de Dokuwiki.
La rescritura de URLs es una opción del panel de administración. Para que funcione con NGinx hay que añadir al archivo de configuración del virtualhost las siguientes líneas:
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; }
Una vez hecho el cambio, las URLs se cambian correctamente, pero el contenido creado previamente no es editable.
La opción está desactivada por el momento, hasta que se consiga que funcione la edición en todos los contenidos.