====== DokuWiki Installation ====== This install guide is a how-to for installing DokuWiki Ubuntu server 22.04. ===== Prerequisites ===== Packages required for DokuWiki to work: sudo apt install php8.1 php8.1-common php8.1-cli php8.1-gd php8.1-mbstring php8.1-mysql php8.1-xml php8.1-ldap php8.1-fpm sudo apt install nginx ===== DokuWiki ===== Download and extract DokuWiki stable to the proper directory. wget -c https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz sudo tar -xvf "dokuwiki-stable.tgz" -C /var/www/ sudo mv /var/www/dokuwiki* /var/www/dokuwiki ===== Configure nginx ===== Need to make the configuration file for nginx to point to the correct files. Make sure to change the domain to the correct one, a generic placeholder wiki.domainname.tld is used for this example config. sudo nano /etc/nginx/conf.d/dokuwiki.conf Paste in the below configuration and save. server { listen 80; listen 443 ssl; server_name wiki.domainname.tld; root /var/www/dokuwiki/; access_log /var/log/nginx/dokuwiki.access.log; error_log /var/log/nginx/dokuwiki.error.log; #ssl on; #ssl_certificate /etc/letsencrypt/live/wiki.domainname.tld/fullchain.pem; #ssl_certificate_key /etc/letsencrypt/live/wiki.domainname.tld/privkey.pem; #ssl_session_timeout 5m; #ssl_ciphers 'AES256+EECDH:AES256+EDH:!aNULL'; #ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #ssl_prefer_server_ciphers on; #add_header Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:;"; #add_header X-XSS-Protection "1; mode=block"; index index.html index.php doku.php; 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 ^/(.*) /doku.php?id=$1 last; } location ~ /(data|conf|bin|inc)/ { deny all; } location ~* \.(css|js|gif|jpe?g|png)$ { expires 1M; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; } location ~ /\.ht { deny all; } } #server { # listen 80; # server_name wiki.domainname.tld; # add_header Strict-Transport-Security max-age=2592000; # rewrite ^ https://wiki.domainname.tld$request_uri? permanent; #} Here we are going to change the permissions on the web root files so that the web server can use and modify them. sudo chown -R www-data:www-data /var/www/dokuwiki Start nginx and php-fpm, and enable php-fpm to start at boot. sudo systemctl start nginx php8.1-fpm sudo systemctl enable php8.1-fpm ===== Configure DokuWiki ===== Navigate your browser to your https://wiki.domainname.tld/install.php From there you can configure everything for the initial setup of DokuWiki.