====== 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