This article is outdated and may not work correctly for current operating systems or software.
DokuWiki is an open source wiki program written in PHP that doesn't require a database. It stores data in text files. DokuWiki source code is publicly hosted on GitHub. This guide will show you how to install DokuWiki on a fresh Ubuntu 16.04 LTS Vultr instance.
Web server software supporting PHP (Apache, NGINX, IIS, Lighttpd, LiteSpeed)
PHP version 5.6 or later, newer versions are highly recommended. (This guide will use PHP 7.0)
Check the Ubuntu version.
lsb_release -ds
# Ubuntu 16.04.4 LTS
Create a new non-root
user account with sudo
access and switch to it.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
NOTE: Replace johndoe
with your username.
Set up the timezone.
timedatectl list-timezones
sudo timedatectl set-timezone Region/City
Ensure that your system is up to date.
sudo apt update && sudo apt upgrade -y
Install PHP 7.0 and required PHP extensions.
sudo apt install -y php7.0 php7.0-cli php7.0-fpm php7.0-gd php7.0-xml php7.0-zip
Check PHP version.
php --version
# PHP 7.0.28-0ubuntu0.16.04.1 (cli) ( NTS )
# Copyright (c) 1997-2017 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
# with Zend OPcache v7.0.28-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies
DokuWiki will run on any web server that supports PHP. In this tutorial we will use NGINX. If you prefer Apache or another web server, you can use that instead of NGINX.
Install NGINX.
sudo apt install -y nginx
Check NGINX version.
sudo nginx -v
# nginx version: nginx/1.10.3 (Ubuntu)
Configure NGINX.
sudo vim /etc/nginx/sites-available/dokuwiki.conf
Copy/paste the following NGINX cofiguration and save it.
server {
listen [::]:80;
listen 80;
server_name wiki.example.com; # Replace with your hostname
root /var/www/dokuwiki;
index index.html index.htm index.php doku.php;
client_max_body_size 15M;
client_body_buffer_size 128K;
location / {
try_files $uri $uri/ @dokuwiki;
}
location ^~ /conf/ { return 403; }
location ^~ /data/ { return 403; }
location ~ /\.ht { deny all; }
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 ~ \.php$ {
try_files $uri =404;
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;
}
}
Activate the new dokuwiki.conf
configuration by linking the file to the sites-enabled
directory.
sudo ln -s /etc/nginx/sites-available/dokuwiki.conf /etc/nginx/sites-enabled/
Check NGINX configuration.
sudo nginx -t
Reload NGINX.
sudo systemctl reload nginx.service
Create a document root directory.
sudo mkdir -p /var/www/dokuwiki
Change ownership of the /var/www/dokuwiki
directory to johndoe
.
sudo chown -R johndoe:johndoe /var/www/dokuwiki
Navigate to the document root.
cd /var/www/dokuwiki
Download the newest stable release of DokuWiki from the DokuWiki download page.
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
Unpack the DokuWiki tarball.
tar xvf dokuwiki-stable.tgz
rm dokuwiki-stable.tgz
mv dokuwiki-2017-02-19e/* . && mv dokuwiki-2017-02-19e/.* .
rmdir dokuwiki-2017-02-19e/
Change ownership of the /var/www/dokuwiki
directory to www-data
.
sudo chown -R www-data:www-data /var/www/dokuwiki
Restart php7.0-fpm.service
.
sudo systemctl restart php7.0-fpm.service
Open the DokuWiki setup script, install.php
, in your browser and setup DokuWiki. The setup script checks for the availability of required PHP functions and checks for needed file permissions. It also creates an initial administrator account and an initial ACL policy. To run the installer, open http://wiki.example.com/install.php
in the browser and follow the instructions.
After a successful configuration, delete the install.php
file from DokuWiki root directory.
sudo rm /var/www/dokuwiki/install.php
Your DokuWiki has been installed and you can now access and edit a functional wiki at http://wiki.example.com/
.