Table of Contents

  Installing DokuWiki on Ubuntu 24.04 with Nginx and PHP 8.3
      Requirements
      Download & Extract DokuWiki
      Configure Nginx
      Set Permissions
      Run Install Script
      Delete Install Script

Installing DokuWiki on Ubuntu 24.04 with Nginx and PHP 8.3

This guide covers the installation of DokuWiki on Ubuntu Server 24.04 (Noble Numbat) using Nginx and PHP-FPM 8.3. Requirements

Install PHP 8.3 and Nginx.

# Ubuntu 24.04 includes PHP 8.3 by default. # We specify php8.3-fpm specifically to avoid pulling in Apache dependencies. sudo apt update sudo apt install nginx php8.3-fpm php8.3-cli php8.3-common php8.3-xml php8.3-mbstring php8.3-zip php8.3-gd

Download & Extract DokuWiki

Use wget to download the latest stable release.

# This URL always points to the most recent stable release wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

Move and extract the archive to your web root (/var/www).

sudo mv dokuwiki-stable.tgz /var/www/ cd /var/www sudo tar xzf dokuwiki-stable.tgz # Rename the extracted folder (e.g., dokuwiki-2024-02-06a) to just 'dokuwiki' sudo mv dokuwiki-*/ dokuwiki

Configure Nginx

There are two ways to handle the configuration depending on whether you want DokuWiki to be your primary site or a sub-page.

Option A: Dedicated Site (Recommended) This makes DokuWiki the primary site (e.g., http://your-ip/). Create a new file:

sudo nano /etc/nginx/sites-available/dokuwiki

Paste the following into the file:

/etc/nginx/sites-available/dokuwiki

  server {
      listen 80;
      server_name _;
      root /var/www/dokuwiki;
      index index.php index.html;
   
      # Security: Block access to sensitive DokuWiki directories
      location ~ /(data|conf|bin|inc|vendor)/ {
          deny all;
      }
   
      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&$args last;
      }
   
      location ~ \.php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
      }
  }

Enable and restart:

sudo ln -s /etc/nginx/sites-available/dokuwiki /etc/nginx/sites-enabled/ sudo rm /etc/nginx/sites-enabled/default sudo nginx -t && sudo systemctl restart nginx

Option B: Subdirectory Site Use this if you want the wiki at http://your-ip/dokuwiki alongside other content. Edit /etc/nginx/sites-available/default:

/etc/nginx/sites-available/default

  server {
      listen 80 default_server;
      root /var/www/html;
      index index.php index.html;
   
      location /dokuwiki {
          alias /var/www/dokuwiki/;
          index index.php index.html;
          try_files $uri $uri/ @dokuwiki;
      }
   
      location ~ ^/dokuwiki/(data|conf|bin|inc|vendor)/ {
          deny all;
      }
   
      location @dokuwiki {
          rewrite ^/dokuwiki/_media/(.*) /dokuwiki/lib/exe/fetch.php?media=$1 last;
          rewrite ^/dokuwiki/_detail/(.*) /dokuwiki/lib/exe/detail.php?media=$1 last;
          rewrite ^/dokuwiki/_export/([^/]+)/(.*) /dokuwiki/doku.php?do=export_$1&id=$2 last;
          rewrite ^/dokuwiki/(.*) /dokuwiki/doku.php?id=$1&$args last;
      }
   
      location ~ \.php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
      }
  }

Set Permissions

sudo chown -R www-data:www-data /var/www/dokuwiki sudo find /var/www/dokuwiki -type d -exec chmod 755 {} \; sudo find /var/www/dokuwiki -type f -exec chmod 644 {} \;

Run Install Script

Navigate to: http://your-server-ip/install.php (or /dokuwiki/install.php if using Option B). Delete Install Script

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

install/ubuntu_24.04_nginx.txt ยท Last modified: 2026-03-09 07:14 by saggi Page Tools

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki Imprint Global DokuWiki Links

  Download Wiki Forum IRC Bugs Translate Git XRef Code Search