====== DokuWiki Installation ====== This install guide is a how-to for installing DokuWiki Ubuntu server 20.04. ===== Prerequisites ===== Packages required for DokuWiki to work: sudo apt install php7.4 php7.4-common php7.4-cli php7.4-gd php7.4-mbstring php7.4-mysql php7.4-xml php7.4-ldap php7.4-fpm sudo apt install nginx ===== Compiling mcrypt PHP module ===== First Check whether the mcrypt PHP module is present: php -m | grep mcrypt To install the mcrypt PHP module we first need to satisfy the following prerequisites: sudo apt install php-dev libmcrypt-dev php-pear Now we are ready to install mcrypt PHP module on our Ubuntu 20.04 system: sudo pecl channel-update pecl.php.net sudo pecl install mcrypt-1.0.4 Open the ''/etc/php/7.4/cli/php.ini'' file and insert: extension=mcrypt.so All done. When successful, checking for the presence of the mcrypt PHP module should produce the following output: php -m | grep mcrypt mcrypt ===== DokuWiki ===== Download and extract DokuWiki stable to the proper directory. wget -c https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz mv dokuwiki-stable.tgz dokuwiki.tgz sudo tar -xvf dokuwiki.tgz -C /var/www/ ===== Let's Encrypt ===== For SSL use the EFF's PPA for the Let's Encrypt certbot. sudo add-apt-repository ppa:certbot/certbot sudo apt update; sudo apt upgrade sudo apt install python3-certbot-nginx sudo certbot --nginx certonly Cert and Key locations: /etc/letsencrypt/live/wiki.domainname.tld/fullchain.pem /etc/letsencrypt/live/wiki.domainname.tld/privkey.pem ------------- source: https://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx ==== Renewing Certificate ==== sudo certbot renew ===== Configure nginx ===== Need to make the configuration file for nginx to point to the correct files. Make sure to change the domain to the correct one, a generic placeholder wiki.domainname.tld is used for this example config. sudo nano /etc/nginx/conf.d/dokuwiki.conf Paste in the below configuration and save. server { listen 443 ssl; server_name wiki.domainname.tld; root /var/www/dokuwiki/; access_log /var/log/nginx/dokuwiki.access.log; error_log /var/log/nginx/dokuwiki.error.log; ssl on; ssl_certificate /etc/letsencrypt/live/wiki.domainname.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/wiki.domainname.tld/privkey.pem; ssl_session_timeout 5m; ssl_ciphers 'AES256+EECDH:AES256+EDH:!aNULL'; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; add_header Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:;"; add_header X-XSS-Protection "1; mode=block"; index index.html index.php doku.php; 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 last; } location ~ /(data|conf|bin|inc)/ { deny all; } location ~* \.(css|js|gif|jpe?g|png)$ { expires 1M; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; 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; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; } location ~ /\.ht { deny all; } } server { listen 80; server_name wiki.domainname.tld; add_header Strict-Transport-Security max-age=2592000; rewrite ^ https://wiki.domainname.tld$request_uri? permanent; } Here we are going to change the permissions on the web root files so that the web server can use and modify them. sudo chown -R www-data:www-data /var/www/dokuwiki Start nginx and php-fpm, and enable php-fpm to start at boot. sudo systemctl start nginx php7.4-fpm sudo systemctl enable php7.4-fpm ===== Configure DokuWiki ===== Navigate your browser to your https://wiki.domainname.tld/install.php From there you can configure everything for the initial setup of DokuWiki. ==== Removing the Glow ==== Make userstyle.css in /conf sudo vim /var/www/dokuwiki/conf/userstyle.css Copy the following .dokuwiki div.page { box-shadow: none; } .dokuwiki .pageId span { box-shadow: none; } pre { box-shadow: none; }