DokuWiki installeren met Nginx en Let’s encrypt SSL op Debian 10

DokuWiki is een eenvoudig te gebruiken en zeer veelzijdige Open Source wiki software die geen databank nodig heeft. Het is geliefd bij gebruikers om zijn schone en leesbare syntaxis. Het gemak van onderhoud, backup, en integratie maakt het tot een favoriet van beheerders. Ingebouwde toegangscontrole en authenticatie connectors maken DokuWiki bijzonder nuttig in de bedrijfscontext en een groot aantal plugins, bijgedragen door de levendige gemeenschap, maken een brede waaier van gebruiksmogelijkheden mogelijk die verder gaan dan een traditionele wiki. Deze handleiding toont je hoe je DokuWiki op een verse Debian 10 (buster) server installeert.

Vereisten

Zorg ervoor dat je server aan de volgende eisen voldoet.

  • Web server software die PHP ondersteunt (Apache, NGINX, IIS, Lighttpd, LiteSpeed)
  • PHP versie 5.6 of later, nieuwere versies worden sterk aanbevolen.

Vereisten

  • Een Debian 10 (buster) besturingssysteem.
  • Een niet-root gebruiker met sudo privileges.

Eerste Stappen

Controleer je Debian versie:

lsb_release -ds
# Debian GNU/Linux 10 (buster)

Stel de tijdzone in:

sudo dpkg-reconfigure tzdata

Werk je besturingssysteem pakketten (software) bij. Dat is een essentiële eerste stap, want het zorgt ervoor dat je de laatste updates en beveiligingsfixes voor de standaard softwarepakketten van je besturingssysteem hebt:

sudo apt update && sudo apt upgrade -y

Installeer enkele essentiële pakketten die nodig zijn voor het basisbeheer van het Debian besturingssysteem:

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https

Stap 1 – Installeer PHP en PHP uitbreidingen

Installeer PHP en de vereiste PHP uitbreidingen:

sudo apt install -y php7.3 php7.3-cli php7.3-fpm php7.3-gd php7.3-xml php7.3-zip

Om PHP gecompileerd in modules te laten zien, kun je:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Controleer de PHP versie:

php --version

# PHP 7.3.9-1 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

De PHP-FPM dienst wordt op het Debian 10 systeem automatisch gestart en ingeschakeld bij het opnieuw opstarten, dus het is niet nodig hem handmatig te starten en in te schakelen. We kunnen verder gaan met de volgende stap waar we acme.sh client installeren en SSL certs verkrijgen.

Stap 2 – Installeer acme.sh client en verkrijg Let’s Encrypt certificaat ( optioneel )

Je site beveiligen met HTTPS is niet noodzakelijk, maar het is een goed gebruik om je site verkeer te beveiligen. Om een TLS certificaat van Let’s Encrypt te verkrijgen zullen we acme.sh client gebruiken. Acme.sh is een eenvoudige UNIX shell software voor het verkrijgen van TLS certificaten van Let’s Encrypt zonder afhankelijkheden.

Download en installeer acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Controleer de versie van acme.sh:

acme.sh --version
# v2.8.2

Verkrijg RSA en ECC/ECDSA certificaten voor je domein/hostnaam:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Als je valse certificaten wilt om te testen, kun je --staging vlag toevoegen aan bovenstaande commando’s.

Na het uitvoeren van de bovenstaande commando’s staan je certificaten en sleutels in:

  • Voor RSA: /home/username/example.com directory.
  • Voor ECC/ECDSA: /home/username/example.com_ecc directory.

Om je uitgegeven certs op te sommen kun je uitvoeren:

acme.sh --list

Maak een directory om je certs in op te slaan. We zullen de/etc/letsencrypt directory gebruiken.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Installeer/kopieer certificaten naar /etc/letsencrypt directory.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Alle certificaten worden om de 60 dagen automatisch vernieuwd.

Na het verkrijgen van certs verlaat je de root gebruiker en ga je terug naar de gewone sudo gebruiker:

exit

Stap 3 - Installeer en configureer Nginx

DokuWiki draait op elke webserver die PHP ondersteunt. In deze handleiding gebruiken we Nginx. Als je liever Apache of een andere webserver hebt, kun je die gebruiken in plaats van Nginx.

Download en installeer NGINX uit de Debian repository:

sudo apt install -y nginx

Controleer de Nginx versie:

sudo nginx -v
# nginx version: nginx/1.14.2

Configureer Nginx:

sudo vim /etc/nginx/sites-available/dokuwiki.conf

Kopieer/plak de volgende Nginx configuratie en sla hem op:

server {

listen [::]:443 ssl;
listen 443 ssl; listen [::]:80; listen 80; # RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECC
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
server_name wiki.example.com; 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.3-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }

Activeer de nieuwe dokuwiki.conf configuratie door het bestand te koppelen aan de sites-enabled directory:

sudo ln -s /etc/nginx/sites-available/dokuwiki.conf /etc/nginx/sites-enabled/

Controleer de Nginx configuratie:

sudo nginx -t

Herlaad Nginx:

sudo systemctl reload nginx.service

Stap 4 - DokuWiki installeren

Maak een document root directory:

sudo mkdir -p /var/www/dokuwiki

Navigeer naar de document root:

cd /var/www/dokuwiki

Download de nieuwste stabiele release van DokuWiki van de DokuWiki download pagina:

sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

Pak de DokuWiki tarball uit:

sudo tar xvf dokuwiki-stable.tgz
sudo rm dokuwiki-stable.tgz
sudo mv dokuwiki-2018-04-22b/* . && mv dokuwiki-2018-04-22b/.* .
sudo rmdir dokuwiki-2018-04-22b/

Verander het eigendom van de /var/www/dokuwiki directory in www-data:

sudo chown -R www-data:www-data /var/www/dokuwiki

Start opnieuw op php7.3-fpm.service:

sudo systemctl restart php7.3-fpm.service

Open het DokuWiki setup script, install.php, in je browser en stel DokuWiki in. Het setup script controleert of de vereiste PHP functies beschikbaar zijn en controleert de benodigde bestandspermissies. Het maakt ook een initiële beheerdersaccount aan en een initieel ACL beleid. Om het installatieprogramma uit te voeren, open je http://wiki.example.com/install.php in de browser en volg je de instructies.

Stap 5 - Toegang tot de DokuWiki Web Interface

Open je web browser en typ de URL http://example.com/install.php. Je wordt doorverwezen naar de volgende pagina:

DikuWiki installer

Geef alle vereiste informatie op, zoals superuser naam, e-mail, wachtwoord. Klik dan op de knop Save. Als de installatie met succes voltooid is, zou je de volgende pagina moeten zien:

Stel gebruikersnaam en wachtwoord in

Klik nu opje nieuwe DokuWiki. Je zou de volgende pagina moeten zien:

DokuWiki met succes geïnstalleerd

Klik nu op de login knop. Je wordt doorverwezen naar de volgende pagina:

Inloggen

Geef nu je Admin gebruikersnaam en wachtwoord op. Klik dan op de Log In knop. Je zou het DokuWiki dashboard op de volgende pagina moeten zien:

Welkom bij DokuWiki

Na een geslaagde configuratie verwijder je het install.php bestand uit de DokuWiki hoofddirectory:

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

Gefeliciteerd! Je hebt DokuWiki met succes geïnstalleerd en geconfigureerd op de Debian 10 server. Je kunt nu gemakkelijk je eigen wiki site maken met DokuWiki.