# Dokuwiki
Lightweight no database php wiki
# Syntax
Pages are automatically treated as markdown with the commonmark plugin.
There is some special dokuwiki syntax.
## Notes (plugin)
This is a warning note.
This is a more important informational note.
This is a tip-like note.
This is a tip-like note.
# Debian install
Debian version is old and imposes a different dir structure
This setups assumes nginx as a webserver.
1. Install dependencies
`apt install php8.4-fpm`
`apt install php php-fpm php-xml php-json php-mbstring php-zip php-intl php-gd php-sqlite3`
2. Download dokuwiki and move it somewehere useful
`wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz`
`mkdir -p /var/www/html/dokuwiki`
`tar xzvf dokuwiki-stable.tgz -C /var/www/html/`
3. Change permissions for webserver
`chown -R www-data:www-data /var/www/html/dokuwiki`
4. Configure webserver
```nginx
server {
server_name wiki.ctq.ro;
listen 443 ssl; # managed by Certbot
listen [::]:443 ssl ipv6only=on; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/ctq.ro/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/ctq.ro/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
client_max_body_size 50M;
client_body_buffer_size 128k;
root /var/www/html/dokuwiki;
index doku.php;
location / { try_files $uri $uri/ @dokuwiki; }
# tell browser to cache images
location ~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$ {
expires 365d;
}
# orion config set
#include orion/orion.conf;
# disable install page
location ~ /(install.php) { deny all; }
# hide restricted folders
location ~ /(data|conf|bin|inc)/ {
return 404;
}
# stop whining about favicon
location = /favicon.ico {
access_log off;
log_not_found off;
expires 365d;
}
location @dokuwiki {
# rewrites "doku.php/" out of the URLs if you set the userwrite setting to .htaccess in dokuwiki config
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&$args last;
}
location ~ \.php$ {
try_files $uri $uri/ /doku.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
}
```
6. Restart webserver and php8.4-fpm
7. Configure dokuwiki at `http://localhost/dokuwiki/install.php`
8. Deny access to / delete install.php
See also
--------
The dokuwiki wiki for debian at https://www.dokuwiki.org/install:debian