Using a Different System?
-
How to Install DokuWiki on Ubuntu 16.04 LTS
-
How to Install DokuWiki on CentOS 7
-
How to Install DokuWiki on Debian 9
-
How to Install DokuWiki on FreeBSD 12
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 Fedora 28 Vultr instance.
Requirements
Make sure your server meets the following requirements.
- Web server software that supports PHP (Apache, Nginx, IIS, Lighttpd, LiteSpeed).
- PHP version 5.6 or later.
Before you begin
Check the OS version.
cat /etc/fedora-release
# Fedora release 28 (Twenty Eight)
Create a new non-root user account with sudo
access and switch to it. Replace johndoe
with your username.
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
Ensure that your system is up to date.
sudo dnf check-upgrade || sudo dnf upgrade -y
Set the timezone.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Install required and useful packages.
sudo dnf install -y wget vim unzip bash-completion
For simplicity, disable SELinux and Firewall.
sudo setenforce 0; sudo systemctl stop firewalld; sudo systemctl disable firewalld
Step 1 – Install PHP and PHP extensions
Install PHP and required PHP extensions.
sudo dnf install -y php-cli php-fpm php-gd php-xml php-zip php-json
Check the version.
php --version
# PHP 7.2.6 (cli) (built: May 22 2018 16:22:08) ( NTS )
Start and enable PHP-FPM service.
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Step 2 – Install and configure Nginx
If you prefer Apache or another popular web server, you can use one of those instead of Nginx.
Install Nginx.
sudo dnf install -y nginx
Check the version.
nginx -v
# nginx version: nginx/1.12.1
Start and enable Nginx.
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Configure Nginx.
sudo vim /etc/nginx/conf.d/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; # Replace with your DokuWiki web root folder
index doku.php;
client_max_body_size 4M;
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&$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:/run/php-fpm/www.sock; # Replace with your UNIX socket path
}
}
NOTE: You can run netstat --unix --listening | grep php
to find the default path of PHP-FPM UNIX domain socket.
Check the 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-2018-04-22a/* . && mv dokuwiki-2018-04-22a/.* .
rmdir dokuwiki-2018-04-22a/
Change ownership of the /var/www/dokuwiki
directory to nginx
.
sudo chown -R nginx:nginx /var/www/dokuwiki
Run sudo vim /etc/php-fpm.d/www.conf
and set the user and group to nginx
.
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Restart php-fpm.service
.
sudo systemctl restart php-fpm.service
As the last step, run the DokuWiki setup script install.php
in your browser and setup DokuWiki. The 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.
Upon successful configuration, delete the install.php
file from the DokuWiki root directory.
sudo rm /var/www/dokuwiki/install.php
Congratulations, your DokuWiki has been installed and you can now access and edit a functional wiki at http://wiki.example.com/
. Enjoy your new DokuWiki installation.
Want to contribute?
You could earn up to $300 by adding new articles
Suggest an update
Request an article