====== Install DokuWiki ======
A FreeBSD 14.0-RELEASE was installed on a PCEngines box to host a DokuWiki server.
===== Install and configure DokuWiki =====
Install DokuWiki and Apache.
sudo pkg install dokuwiki-php82
sudo pkg install apache24
Edit the config file of system environment (for booting next time) for Apache (2.4): add in /etc/rc.conf
apache24_enable="YES"
comment out/edit /usr/local/etc/apache24/httpd.conf
#DocumentRoot "/usr/local/www/apache24/data"
DocumentRoot "/usr/local/www/dokuwiki"
Options Indexes FollowSymLinks
DirectoryIndex index.php
AllowOverride None
Require all granted
Install PHP module
sudo pkg install mod_php82
check if the LoadModule line was added
cat /usr/local/etc/apache24/httpd.conf | grep php
should output
LoadModule php_module libexec/apache24/libphp.so
add in /usr/local/etc/apache24/httpd.conf
DirectoryIndex index.php index.html
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
change the owner of conf and data in /usr/local/www/dokuwiki/ to the web server.
sudo chown -R www:www /usr/local/www/dokuwiki/conf
sudo chown -R www:www /usr/local/www/dokuwiki/data
restart FreeBSD
For a initial config, open wiki install.php in browser
http://192.168.178.65/install.php
enter data, for example
Wiki Name: nplab
Superuser: admin
E-Mail: timo.voelker@fh-muenster.de
Initial ACL policy: Closed Wiki
license: CC Attribution-Share Alike 4.0 International
after that /usr/local/www/dokuwiki/conf/local.php contains the configuration
It is recommended to separate config and binaries from DokuWiki website files. Create a directory outside of the installation path
sudo mkdir -p /var/dokuwiki/www
move data and conf into /var/dokuwiki/www. Move bin directory into /var/dokuwiki
sudo mv /usr/local/www/dokuwiki/data /var/dokuwiki/www/
sudo mv /usr/local/www/dokuwiki/conf /var/dokuwiki/www/
sudo mv /usr/local/www/dokuwiki/bin /var/dokuwiki/
It is important that the www user (the user that runs apache) has access to these files --> set owner of /var/dokuwiki/www to www
sudo chown -R www:www /var/dokuwiki/www
DokuWiki needs to know where to find these files. Create inc/preload.php
sudo vi /usr/local/www/dokuwiki/inc/preload.php
and add
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
The .key file should contain the private key only. Edit the file and remove everything except the following Block.
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
Copy both files to /usr/local/etc/apache24/ssl/
mkdir /usr/local/etc/apache24/ssl
cp certificate.crt /usr/local/etc/apache24/ssl/
cp certificate.key /usr/local/etc/apache24/ssl/
Configure apache for SSL access. In /usr/local/etc/apache24/httpd.conf
Uncomment the line
LoadModule ssl_module libexec/apache24/mod_ssl.so
Add
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
and add
ServerName nplab.fh-muenster.de:443
SSLEngine on
SSLCertificateFile "/usr/local/etc/apache24/ssl/certificate.crt"
SSLCertificateKeyFile "/usr/local/etc/apache24/ssl/certificate.key"
To apply these changes, restart Apache serivce
sudo service apache24 restart
On error, check /var/log/httpd-error.log for log messages.
===== Impressum im Footer =====
In /var/dokuwiki/www/conf/footer.html lässt sich HTML-Code schreiben, der im Footer auf jeder Seite des Wikis angezeigt wird. Hinzugefügt wurde ein einfacher Link zu einem Impressum.
Impressum
Der Link verweist auf eine normale Wiki-Seite, die ggf. mit beliebigen Text gefüllt werden kann.
===== Backup =====
For a automatic backup, the DokuWiki files are compressed in a tar.gz archive and copied to another server (bsd19.fh-muenster.de (console)). This is done by
a separate user named wikibackup.
Create user wikibackup on source and destination system (nplab.fh-muenster.de and bsd19.fh-muenster.de).
adduser
* Username: wikibackup
* Do not add the user in any group
* Shell: nologin
* Use password-based authentication?: no
wikibackup@nplab.fh-muenster.de needs to ssh to bsd19.fh-muenster.de without entering a password. On nplab.fh-muenster.de, switch to user wikibackup and crea
te SSH keys.
sudo su - wikibackup
ssh-keygen
Copy the content of ~/.ssh.id_rsa.pub into ~/.ssh/authorized_keys on wikibackup@bsd19.fh-muenster.de. After that, on nplab.fh-muenster.de as wikibackup
ssh bsd19.fh-muenster.de
should work without entering a password.
Next step is to create the script that performs the backup and copies the backup file to bsd19.fh-muenster.de. The following script (~/backup.sh) is used.
#!/bin/sh
echo $(date)
dayOfYear=$(date +%j)
file=~/wiki-$dayOfYear.tar.gz
echo backup wiki to $file
tar -czf $file -C /var/dokuwiki/ --exclude www/data/cache --exclude www/data/index --exclude www/data/locks --exclude www/data/tmp --exclude www/data/dont-pa
nic-if\* www
echo copy to bsd19 and delete local file
scp $file bsd19.fh-muenster.de:~/
rm $file
echo done
To start the script daily, create a cron job. On nplab.fh-muenster.de as wikibackup, run
crontab -e
and add
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
# Order of crontab fields
# minute hour mday month wday command
0 22 * * * /bin/sh /usr/home/wikibackup/backup.sh > /usr/home/wikibackup/backup.log 2>&1