Raspberry als Dokuwiki-Server

V 1.08 ⇒ administrator | 17-Feb-2019 00:50

Voraussetzung ist ein lauffähiges System mit SSH Zugang.
In diesem Beispiel wird raspbian-stretch-lite, Version 2018-11-13 verwendet. Da hier eine längere Installation durchgeführt wird, sollte ein dist-upgrade durchgeführt werden. Starten, und dann auf einen Kaffee oder so gehen.

Paketlisten aktualisieren

sudo apt-get update -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y

Fixe IP-Adresse

Der Raspberry Pi bekommt eine fixe IP-Adresse, hier 192.168.20.210. Hierfür öffnen wir die dhcpcd.conf:

sudo nano /etc/dhcpcd.conf

und fügen an das Ende der Datei folgendes ein:

# Eigenes Netzwerk
interface eth0
static ip_address=192.168.20.210/24
static routers=192.168.20.20
static domain_name_servers=192.168.20.20

Die dhcpcd.conf speichern und den Pi rebooten:

sudo reboot

USB Festplatte am Raspberry installieren

Um größere Datenmengen unterzubringen, ist es notwendig, einen Datenträger zu installieren.
Nachdem die Festplatte am USB-Port angeschlossen wurde, müssen wir prüfen, ob sie gefunden wurde.

1. Festplatte erkennen

An der Konsole folgenden Befehl absetzen:

dmesg

damit wird die Festplatte identifiziert. In diesem Fall ist es /dev/sda1

Siehe dritte Zeile von unten.

2. Partition erstellen

sudo fdisk /dev/sda

In weiterer Folge nachstehendes am fdisk-Prompt eingeben:

Command (m for help):

n – um eine neue Partition zu erstellen
p – für eine primäre Partition
1 – für die erste Partition
dann 2 x die vorgeschlagenen Werte übernehmen

Command (m for help):

w – um die Änderungen aud die Disk zu schreiben.

3. Festplatte formatieren:

sudo mkfs.ext4 /dev/sda1

4. Festplatte mounten:

sudo mkdir /mnt/ssd
sudo mount /dev/sda1 /mnt/ssd

Nun wurde im Ordner /mnt/ das Verzeichnis /usbdisk/ erstellt und die Festplatte in diesem Ordner gemountet.

Mit der Eingabe von:

df -l -h

können wir kontrollieren, ob die neue Platte gefunden wird.

Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/root 29G 4,0G 24G 15% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 463M 0 463M 0% /dev/shm
tmpfs 463M 6,4M 457M 2% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 463M 0 463M 0% /sys/fs/cgroup
>/dev/sda1 118G 60M 112G 1% /mnt/ssd
/dev/mmcblk0p1 63M 21M 42M 33% /boot
tmpfs 93M 0 93M 0% /run/user/1000

Siehe 3. Zeile von unten

5. Automatisch beim Booten mounten

UUID feststellen:

sudo ls -l /dev/disk/by-uuid/

insgesamt 0
lrwxrwxrwx 1 root root 15 Feb 10 23:27 0EDC-9EC5 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 9 Feb 10 23:27 7d4bd715-1158-4a82-a235-b100038fb4b6 -> ../../sda
lrwxrwxrwx 1 root root 15 Feb 10 23:27 7f593562-9f68-4bb9-a7c9-2b70ad620873 -> ../../mmcblk0p2
lrwxrwxrwx 1 root root 10 Feb 10 23:27 f9b3a36b-64d2-412c-8218-0fc2d083dd8e -> ../../sda1

sudo nano /etc/fstab

Für unsere Festplatte folgende Zeile einfügen:
UUID=f9b3a36b-64d2-412c-8218-0fc2d083dd8e /mnt/ssd ext4 defaults 0 0

Danach Rechte vergeben, dass alle auf die Disk schreiben können. Falls Bedenken bestehen, dass unberechtigte zugriff haben, die Rechte entsprechend ändern:

sudo chmod 777 /mnt/ssd/

Den Pi rebooten und kontrollieren, ob die Festplatte gefunden wird.

sudo reboot

Apache, MySQL, PHP, phpMyAdmin und FTP einrichten

Die Installation der Webserver-Umgebung ist unter Raspberry Pi als Webserver beschrieben.

DocumentRoot von Apache auf /ssd legen

Verzeichnisse anlegen:

mkdir /mnt/ssd/www
mkdir /mnt/ssd/www/html

Das DocumentRoot ist in der Konfigurationsdatei 000-default.conf im Ordner /etc/apache2/sites-available. In dieser Datei wird der Eintrag DocumentRoot /var/www/html geändert in DocumentRoot /mnt/ssd/www/html:

cd /etc/apache2/sites-available
$ sudo nano 000-default.conf

ServerAdmin webmaster@localhost
#	DocumentRoot /var/www/html
DocumentRoot /mnt/ssd/www/html

Des weiteren ist die apache2.conf zu ändern:

sudo nano /etc/apache2/apache2.conf

den folgenden Eintrag kopieren:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

unterhalb einfügen und dann den DirectoryPfad ändern:

<Directory /mnt/ssd/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

und anschließend Apache neu starten:

sudo service apache2 restart

Dokuwiki Server Installieren

Dokuwiki Sourcen aus dem Repository holen

Mit wget das Installationspaket von Dokuwiki ins Verzeichnis /var/www holen :

cd /mnt/ssd/www
sudo wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

Unter Raspbian liegt das Webverzeichnis von Apache unter /var/www/html. Wir entpacken es daher mit:

sudo tar xzvf dokuwiki-stable.tgz -C /var/www/html/

in das Verzeichnis /var/www/html/.

cd html

Das hier entstandene Verzeichnis mit der aktuellen Versionsangabe benennen wir mit:

sudo mv /var/www/html/dokuwiki-2016-06-26a /mnt/ssd/www/html/dokuwiki

nach dokuwiki um und setzen die entsprechenden Rechte für Apache:

sudo chown -R www-data:www-data /mnt/ssd/www/html/dokuwiki/
cd dokuwiki

Wenn die Installation korrekt verlaufen ist, dann ist das Dokuwiki betriebsbereit. Die weitere Einrichtung folgt nun im Browser:

http://192.168.20.210/dokuwiki/install.php?l=de

Diese Seite hilft bei der Erstinstallation und Konfiguration von DokuWiki. Entsprechende Eingaben vornehmen.

Dokupedia Installation

Zusätzliche Informationen zu diesem Installationsskript findet man auf der entsprechenden Hilfe Seite.

http://dokuwiki.org/installer

Nach der Erstinstallation wird Dokuwiki im Browser aufgerufen:

http://192.168.20.210/dokuwiki/doku.php?id=wiki:welcome

Auf dieser Seite ist bereits der Name von Dokuwiki zu sehen, und man kann sich bereits als Administrator anmelden.

Eigenes Logo

Der Pfad, in dem das Logo gespeichert ist, lautet:

IP-Adresse-des-Wiki/dokuwiki/lib/tpl/dokuwiki/images/logo.png

Das originale Logo löschen oder umbenennen und das Eigene einfügen. Die Auflösung des Logo ist 64 x 64 Pixel.

Eigenes Favicon

Das favicon.ico ist eine Grafik, welche im Browser und bei Lesezeichen angezeigt wird.

Die in DokuWiki verwendete Standardeinstellung des favicon.ico enthält 8-Bit-PNG-Bilder mit den Abmessungen 16x16px, 32x32px und 48x48px.

DokuWiki verwendet favicon.ico aus dem Verzeichnis /Dokuwiki/lib/tpl/images, um das für Opensearch verwendete Bild zu generieren.

Benutzerdefinierte Favicons
Wenn Sie das standardmäßige DokuWiki-favicon.ico durch eine eigene Grafik ersetzen möchten, können Sie es an einer der folgenden Stellen platzieren:

dem Web Root (/www)

im Root des DokuWiki-Verzeichnisses

in DokuWiki/data/media ⇒ bevorzugt

in DokuWiki/lib/tpl/dokuwiki/images

Standardmäßig hat DokuWiki eine Datei favicon.ico in DokuWiki/lib/tpl/dokuwiki/images.

Weitere Info auf der DokuWiki.org Seite.

Erste Seite

Nachdem man sich als Administrator angemeldet hat, auf sidebar und Seite erstellen klicken.
Im Editor einen Menüpunkt eingeben z.B. Adresse.
Eintrag markieren und auf das Icon Listenpunkt [.] klicken (zweite Zeile).
Nochmal den Eintrag (ohne den Stern) markieren, und auf das Icon Externer Link klicken (dritte Zeile).
Falls ein Alias gewünscht wird, nach den Klammern Alias eingeben und das Pipe Zeichen (|) einfügen. Dann wird der Alias-Name als Seitenname verwendet und der Eintrag als Menüpunkt.

Sidebar Eingabe
Sidebar Eingabe

Das ergibt die Ausgabe: Sidebar Ausgabe

Die ersten beiden Einträge haben keinen Link hinterlegt, der dritte Eintrag hat den Link Adresse hinterlegt und der vierte Eintrag den Link adr. Siehe Bild Sidebar Eingabe.

Plugin's installieren

⇒ Plugin für geschütztes Leerzeichen

Das ursprünglich verwendete Plugin:nbsp wird nun nicht mehr verwendet, da es im laufenden Betrieb zu unerklärlichen Fehlern gekommen ist. Stattdessen wird eine Datei zur Umwandlung von \ in ein geschütztes Leerzeichen angelegt.

Details zur Umwandlung sind in der Datei conf/entities.conf festgehalten. Um das Überschreiben von Änderungen bei Updates von DokuWiki zu verhindern, wird die Datei conf/entities.local.conf erstellt, um benutzerdefinierte Ersetzungen festzulegen.

Durch das Ausführen der folgenden sechs Befehle wird diese Datei angelegt. Falls eine andere Verzeichnisstruktur vorliegt, entsprechend anpassen.

sudo touch /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf
sudo chmod 666 /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf
sudo echo '# geschütztes Leerzeichen (\ )' >> /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf
sudo echo $'\x5c'$'\x20'$'\x09'$'\xc2'$'\xa0' >> /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf
sudo chmod 644 /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf
sudo chown www-data:www-data /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf

Damit kann man nun ein geschütztes Leerzeichen - Backslash gefolgt von einem Leerzeichen \ - im Editor eingeben.

# geschütztes Leerzeichen (\ ) \

⇒ Color Plugin - Farbigen Test in Dokuwiki-Seiten. Doku

In den Admin-Bereich wechseln:

Wechsel in den Adminbereich
Anschließend in den Bereich Erweiterungen verwalten gehen:
Erweiterungen verwalten
Suchen und Installieren auswählen, nach color suchen und im Eintrag color syntax plugin von Harald Hanche-Olsen den Button Installieren drücken, und den Anweisungen folgen.
Oberhalb der Tab's erscheint bei erfolgreicher Installation Meldung .
Die nächsten Plugin's werden analog zu der vorigen Installation im Programmteil Erweiterungen Verwalten eingefügt.
In der Grundinstallation werden hier folgende, weitere Plugins, verwendet:

⇒ BackupTool for DokuWiki - Führt ein Backup der Daten eines DokuWiki-Servers durch. Doku

⇒ Gallery Plugin - Erzeugt eine Bildergallerie aus einem Namespace oder einem RSS/ATOM Feed. Doku

⇒ Note Plugin - Darstellung von auffälliger, bunter Notitz/Tip/Warnung. Doku

⇒ Open Document Plugin - Exportiert eine Seite im Open Document Format (Libre-/Open Office). Doku
Bei der Erstellung von Seiten ist zu beachten, dass die Exportfunktionen kein HTML exportieren können!

⇒ timer - Ereignis zu einem definierten Zeitpunkt anzeigen. Doku

⇒ DokuWiki Upgrade Plugin - Upgradefunktion der Dokuwiki-Installation. Doku

⇒ Yearbox Plugin - Erstellt einen vollständigen HTML-Kalender für das angegebene Jahr mit einem Link zum Erstellen einer neuen Seite für jeden Tag des Jahres. Bestehende Seiten erhalten eine QuickInfo mit einer Vorschau des Seiteninhalts. Doku

⇒ Comment Syntax Plugin - Damit ist es möglich, Kommentare im Seitenquelltext unterzubringen, welche in den präsentierten Seiten nicht angezeigt werden. Doku

Testweise Installationen:
⇒ Tabinclude Plugin - Dieses Plugin erzeugt eine Karteikartenfunktion. Doku

Update des Dokuwiki-Servers

Da bei einem Update von Plugins nicht kontrolliert wird, ob die neueren Plugins mit der eingesetzten Version von Dokuwiki noch funktionieren, ist es manchmal erforderlich, die Version von Dokuwiki zu aktualisieren. Es gibt sicher andere Möglichkeiten, ein Update durchzuführen. Die hier beschriebene ist getestet und funktioniert problemlos.

Backup der Daten des laufenden Systems
Sicherheitshalber wird ein Backup des gesamten Servers durchgeführt.

cp -a /mnt/ssd/www/html/dokuwiki /mnt/ssd/www/html/dokuwiki_bkp

Mit dieser Eingabe wird das gesamte Verzeichnis /dokuwiki in das Verzeichnis /dokuwiki_bkp, mit allen Dateiattributen, kopiert.

Löschen des Originalverzeichnisses
Nachdem kontrolliert wurde, ob das Backup ordnungsgemäß angelegt wurde, wichtig sind vor allem das /data Verzeichnis und Teile des /conf Verzeichnisses, kann das Serververzeichnis gelöscht werden.

rm -r /mnt/ssd/www/html/dokuwiki

⇒Wiki nach Anleitung neu installieren⇐

Zurückkopieren der Daten

cp -a /mnt/ssd/www/html/dokuwiki_bkp/data/ /mnt/ssd/www/html/dokuwiki/

Zurückkopieren der Einstellungen
Alle Dateien die local im Namen Tragen. Das sind in diesem Fall

cp -a /mnt/ssd/www/html/dokuwiki_bkp/conf/entities.local.conf /mnt/ssd/www/html/dokuwiki/conf
cp -a /mnt/ssd/www/html/dokuwiki_bkp/conf/local.php /mnt/ssd/www/html/dokuwiki/conf
cp -a /mnt/ssd/www/html/dokuwiki_bkp/conf/local.php.dist /mnt/ssd/www/html/dokuwiki/conf
cp -a /mnt/ssd/www/html/dokuwiki_bkp/conf/plugins.local.php /mnt/ssd/www/html/dokuwiki/conf

und die beiden Dateien

cp -a /mnt/ssd/www/html/dokuwiki_bkp/conf/acl.auth.php /mnt/ssd/www/html/dokuwiki/conf
cp -a /mnt/ssd/www/html/dokuwiki_bkp/conf/users.auth.php /mnt/ssd/www/html/dokuwiki/conf

Die install.php löschen

rm /mnt/ssd/www/html/dokuwiki/install.php

Falls verwendet, .htaccess & .htpassword in die neue Installation kopieren.

Template und Plugins neu installieren, um auch hier auf dem neuesten Stand zu sein.

Sonstige Anpassungen im neuen Wiki nachziehen

Falls vorhanden, eigenes Logo kopieren.

cp -a /mnt/ssd/www/html/dokuwiki_bkp/lib/tpl/dokuwiki/images/logo.png /mnt/ssd/www/html/dokuwiki/lib/tpl/dokuwiki/images

Tips und Tricks

Zu lange Textdateien

Wichtig! Jede Seite im Dokuwiki wird in einer Textdatei gespeichert. Wenn diese zu viele Zeilen hat, treten eigenartige Effekte wie abgeschnittener oder gelöschter Text in <code>-Bereichen auf. Wo diese Grenze liegt ist auch in den diversen Foren nicht eruierbar. Daher im Notfall die Seiten anders struktuieren.

Einzelne Seite exportieren

Am Ende des Links in der Eingabezeile &do=export_xhtml anhängen.

Vergessenes Passwort

Falls das Administrator-Passwort abhanden kommt, einen neuen User mit Administratorrechten in die /dokuwiki/conf/user.auth.php einfügen. In dieser Datei sind die User mit Rechten und Passwörtern in MD5 eingetragen.

sudo nano .../dokuwiki/conf/user.auth.php

…/dokuwiki muss das Dokuwikiverzeichnis sein. In dieser Datei nach der letzten Zeile den neuen User eintragen:

test:1a1dc91c907325c69271ddf0c944bc72:test:test@test.com:admin,user

Das sollte dann in etwa so aussehen:

# users.auth.php # <?php exit()?> # Don't modify the lines above # # Userfile # # Format: # # login:passwordhash:Real Name:email:groups,comma,seperated admin:$1$mreLgwU9$KW54/kHo48Sgt..KLJTFIo/:Anwender:user@webadresse.at:admin,user test:1a1dc91c907325c69271ddf0c944bc72:test:test@test.com:admin,user

Mit diesen Einstellungen kann man sich als User test mit dem Kennwort pass Anmelden und im Usermanager von Dokuwiki dem User admin ein neues Kennwort vergeben. den User test im Usermanager wieder löschen.

Windows Links

Da es unter Windows mit Firefox nicht möglich ist, direkt auf verlinkte Dateien, in meinem Fall PDF-Dokumente, zuzugreifen, habe ich einen Workaround geschaffen.
Auf dem RPi wurde beim Installieren ein WEB-Server mitinstalliert. Im Verzeichnis /www/html/ wurde ein Ordner /pdf erstellt, und in diesen die benötigten Dokumente kopiert.

Der Aufruf erfolgt mit einem externen Link Externer Link .

[[http://192.168.20.210\pdf\4002.pdf|Datenblatt HCF4002]]\\

In der Seitendarstellung wird der Link mit einer Weltkugel als externer Link gekennzeichnet

HCF4002 - Dual 4-input NOR gate Datenblatt HCF4002

und kann direkt angesprochen werden.

Anpassen

Medien in neuem Tab öffnen

Konfigurationsmanager starten (Admin/Konfiguration). Im Konfigurationsteil Links bei den gewünschten Targets _blank eintragen

Admin/Konfiguration/Links

Nicht das Speichern der Einstellungen vergessen!

Akronym einfügen

Ein Akronym bedeeutet bei Dokuwiki, dass eine eingetragene Abkürzung wie HTML oder DNS beim Kontakt mit dem Mauszeiger erklärt werden.
Falls eigene Erweiterungen gewünscht sind, so können diese in der Datei

/dokuwiki/conf/acronyms.conf

eingetragen werden.

Eigene Smileys

vor der Änderung DokuWiki kann Text-Smileys in grafisch äquivalente konvertieren. Die default Icons und die benutzerdefinierten Icons werden automatisch in der Smiley-Auswahl der Symbolleiste angezeigt.

Die default Smiley Images werden im Verzeichnis lib/images/smileys/ gespeichert und in der Datei conf/smileys.conf konfiguriert. Wiki-Admins können ihre eigenen Smileys konfigurieren.

Um eigene Smileys hinzuzufügen und upgradesicher zu speichern, sollten diese nicht mit den default Smileys aus dem Dokuwiki-Paket gemischt werden.

Dazu im Ordner /smileys/ einen Ordner /local anlegen

/dokuwiki/lib/images/smileys/local

und in diesen Ordner die neuen Images kopieren:
Eine Configdatei im Ordner /conf anlegen

/dokuwiki/conf/smileys.local.conf

und diese Einstellungen eintragen. Natürlich dann die eigenen. In diesem Fall sind das die Dateien icon_aut.gif und icon_brit.gif

# Eigene Smileys # Der Pfad der *.gif's sind relativ zum Smileys directory lib/images/smileys/ zu sehen # TEXT_TO_REPLACE FILENAME_OF_IMAGE # :d: local/icon_aut.gif :e: local/icon_brit.gif

Es wird empfohlen, den Ersetzungstext in Doppelpunkten einzuschliessen.

Die Zeichen # und $ dürfen nicht verwendet werden.

Falls das neu angelegte Icon nicht in der Auswahlliste der Toolbar zu sehen ist, was vermutlich passiert, so muss der Cache neu angelegt werden. Im einfachsten Fall als Administrator die Konfiguration aufrufen und neu Speichern. Eventuell eine unwichtige Einstellung vornehmen, die Konfig speichern und die Änderung wieder zurücknehmen.

Eine weitere Möglichkeit wäre, das Konfigurationsfile conf/local.php mit einem Editor aufrufen und mit einem neuen Zeitstempel wieder speichern.

nach der Änderung Falls alle Einstellungen richtig vorgenommen wurden, sollte die Smiley Anzeige der Toolbar, so wie links abgebildet, angezeigt werden.

FOOTER ändern

In der Datei

/mnt/ssd/www/html/dokuwiki/lib/tpl/dokuwiki/tpl_footer.php

sind die am unteren Rand angebrachten Buttons für z.B. Donate, PHP, etc. definiert. Um eigene Buttons für z.B. einen Link zu einem Impressum anzubringen, muss diese Datei nach folgendem Schema editiert werden:

sudo nano /mnt/ssd/www/html/dokuwiki/lib/tpl/dokuwiki/tpl_footer.php

<a href="http://IP-Adresse/dokuwiki/doku.php?id=impress" title="Impressum" <?php echo $target?>><img src="<?php echo tpl_basedir(); ?>images/button-impress.jpg" width="80" height="15" alt="Impressum" /></a>

Den Button Button mit einem Grafikprogramm mit der Größe 80×15 pixel erstellen und in das Verzeichnis

/mnt/ssd/www/html/dokuwiki/lib/tpl/dokuwiki/images

kopieren.

Signatur

Im Konfigurationsmanager / Darstellung / Signatur Folgenden Eintrag vornehmen:

=> // @USER@ | %e-%b-%Y %H:%M //

Die Signatur sieht nach dieser Einstellung aus wie folgt:

⇒ administrator | 17-Feb-2019 00:44

Weitere Info bei dokuwiki.org und php.net.

Quellenverzeichnis

Folgende Seiten wurden zur Informationsbeschaffung verwendet:

Quellen:
https://www.dokuwiki.org/start?id=de:installer
https://www.dokuwiki.org/de:entities
https://www.dokuwiki.org/dokuwiki
https://forum.dokuwiki.org/
https://projects.raspberrypi.org/
http://techgeeks.de/