How to Install DokuWiki on Ubuntu 16.04 LTS

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.

Requirements

  • 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)

Before you Begin

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

Step 1 - Install PHP and PHP extensions

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

Step 2 - Install and configure NGINX

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

Step 3 - Install DokuWiki

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/.


How to Install Apache Cassandra 3.11.x on Ubuntu 16.04 LTS

How to Install Apache Cassandra 3.11.x on Ubuntu 16.04 LTS

Using a Different System? Apache Cassandra is a free and open source NoSQL database management system that is designed to provide scalability, hig

Kako instalirati osTicket na FreeBSD 12

Kako instalirati osTicket na FreeBSD 12

Korištenje drugog sustava? osTicket je sustav za kupnju ulaznica otvorenog koda za korisničku podršku. OsTicket izvorni kod je javno hostiran na Githubu. U ovom vodiču

Install HTMLDoc on CoreOS

Install HTMLDoc on CoreOS

Using a Different System? HTMLDoc will dynamically parse Postscript (PDF 1.6) documents from correctly written Hypertext (HTML 3.2). This will allow you t

How to Install Thelia 2.3 on Ubuntu 16.04

How to Install Thelia 2.3 on Ubuntu 16.04

Using a Different System? Thelia is an open source tool for creating e-business websites and managing online content written in PHP. Thelia source code i

How to Install Thelia 2.3 on CentOS 7

How to Install Thelia 2.3 on CentOS 7

Using a Different System? Thelia is an open source tool for creating e-business websites and managing online content, written in PHP. Thelia source code i

How to Install and Configure Graphite on CentOS 7

How to Install and Configure Graphite on CentOS 7

Using a Different System? Introduction Graphite is a highly scalable real-time graphing system that can be used to gather various system information an

How to Install Apache Cassandra 3.11.x on Debian 9

How to Install Apache Cassandra 3.11.x on Debian 9

Using a Different System? Apache Cassandra is a free and open source NoSQL database management system that is designed to provide scalability, hig

Install HTMLDoc on Debian 9

Install HTMLDoc on Debian 9

Using a Different System? Introduction HTMLDoc will dynamically parse Postscript (PDF 1.6) documents from correctly written Hypertext (HTML 3.2). This wil

Install HTMLDoc on Ubuntu 18.04

Install HTMLDoc on Ubuntu 18.04

Using a Different System? Introduction HTMLDoc will dynamically parse Postscript (PDF 1.6) documents from correctly written Hypertext (HTML 3.2). In thi

How to Install DokuWiki on Ubuntu 16.04 LTS

How to Install DokuWiki on Ubuntu 16.04 LTS

Using a Different System? DokuWiki is an open source wiki program written in PHP that doesnt require a database. It stores data in text files. DokuWik

How to Install Omeka Classic 2.4 CMS on a CentOS 7 LAMP VPS

How to Install Omeka Classic 2.4 CMS on a CentOS 7 LAMP VPS

Using a Different System? Omeka Classic 2.4 CMS is a free and open source digital publishing platform and Content Management System (CMS) for sharing digita

How to Install Redaxscript 3.2 CMS on a CentOS 7 LAMP VPS

How to Install Redaxscript 3.2 CMS on a CentOS 7 LAMP VPS

Using a Different System? Redaxscript 3.2 CMS is a modern and ultra lightweight, free and open source Content Management System (CMS) with rocket-fas

How to Install Craft CMS on Ubuntu 16.04 LTS

How to Install Craft CMS on Ubuntu 16.04 LTS

Using a Different System? Craft CMS is an open source CMS written in PHP. Craft CMS source code is hosted on GitHub. This guide will show you how to instal

How to Install MyBB on CentOS 7

How to Install MyBB on CentOS 7

Using a Different System? MyBB is a free and open source, intuitive and extensible forum program. MyBB source code is hosted on GitHub. This guide will sho

Install HTMLDoc on Fedora 29

Install HTMLDoc on Fedora 29

Using a Different System? HTMLDoc will dynamically parse Postscript (PDF 1.6) documents from correctly written Hypertext (HTML 3.2). This will allow you t

How to Install BlogoText CMS on a CentOS 7 LAMP VPS

How to Install BlogoText CMS on a CentOS 7 LAMP VPS

Using a Different System? BlogoText CMS is a simple and lightweight, free and open source Content Management System (CMS) and minimalist blog engine

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više