Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
Foswiki
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
Foswiki ist eine in Perl geschriebene Wiki-Software, die ihre Seiten als Textdateien speichert und keine Datenbank braucht. Mit Makros, Formularen und Suchen lassen sich strukturierte Anwendungen im Wiki bauen, etwa Aufgabenlisten oder Wissensdatenbanken. Diese Anleitung installiert Foswiki von Hand, lässt es als FastCGI-Dienst laufen und bindet es in nginx ein.
Vorbemerkungen
- Voraussetzung: nginx ist nach der Anleitung installiert und läuft.
- Keine Installation über apt: Ubuntu enthält kein Foswiki-Paket. Das Projekt stellt ein fertiges Archiv bereit. Die Perl-Module, die Foswiki braucht, kommen aber alle aus den Ubuntu-Paketquellen.
- Version: Getestet mit Foswiki 2.1.11, Perl 5 und nginx 1.28 unter Ubuntu 26.04.
- Wie Foswiki mit nginx läuft: nginx kann selbst keine Perl-Programme ausführen. Foswiki läuft deshalb als eigener Dienst mit einigen ständig laufenden Prozessen (FastCGI). nginx liefert Bilder und Anhänge selbst aus und reicht alle übrigen Anfragen an diesen Dienst weiter.
- Ports: Das Wiki ist unter nginx auf Port 8087 erreichbar. Der FastCGI-Dienst hört auf Port 9010. Beide sind nur vom eigenen Rechner aus erreichbar.
- Passwort:
AdminPasswort123ist ein Beispiel. Ersetze es durch ein eigenes Passwort.
Vorbereitung
1. Paketlisten aktualisieren
Damit apt die aktuellen Paketstände der Ubuntu-Paketquellen kennt.
sudo apt update
2. Perl-Module installieren
Installiert alle Perl-Module, die Foswiki braucht.
sudo apt install libcgi-pm-perl libcgi-session-perl libcrypt-passwdmd5-perl libcrypt-eksblowfish-perl libemail-address-xs-perl libemail-mime-perl libfile-copy-recursive-perl libfcgi-perl libfcgi-procmanager-perl liblocale-maketext-lexicon-perl liblocale-msgfmt-perl liblocale-codes-perl libarchive-zip-perl libmozilla-ca-perl
Wofür die Module da sind:
libcgi-pm-perlundlibcgi-session-perl– verarbeiten Webanfragen und merken sich angemeldete Benutzer.libcrypt-passwdmd5-perlundlibcrypt-eksblowfish-perl– verschlüsseln Passwörter.libemail-address-xs-perlundlibemail-mime-perl– prüfen E-Mail-Adressen und erzeugen E-Mails, z. B. für Benachrichtigungen.libfile-copy-recursive-perl– kopiert ganze Ordner, etwa beim Umbenennen von Seiten.libfcgi-perlundlibfcgi-procmanager-perl– der FastCGI-Dienst, über den nginx mit Foswiki spricht.liblocale-maketext-lexicon-perl,liblocale-msgfmt-perlundliblocale-codes-perl– Übersetzungen der Oberfläche, z. B. ins Deutsche.libarchive-zip-perlundlibmozilla-ca-perl– entpacken Erweiterungen und prüfen Zertifikate beim Herunterladen.
Prüfen: Der Befehl gibt nichts aus. Fehlt ein Modul, erscheint eine Meldung mit Can't locate.
perl -MCGI -MCGI::Session -MFCGI -MFCGI::ProcManager -MEmail::MIME -e1
Foswiki installieren
3. Programmarchiv herunterladen
Lädt Foswiki 2.1.11 (etwa 19 MB) in den Ordner /tmp. Die aktuelle Version steht auf https://github.com/foswiki/distro/releases.
curl -L -o /tmp/Foswiki-2.1.11.tgz https://github.com/foswiki/distro/releases/download/FoswikiRelease02x01x11/Foswiki-2.1.11.tgz
4. Prüfsumme kontrollieren
Stellt sicher, dass das Archiv vollständig und unverändert angekommen ist. Die Prüfsumme veröffentlicht das Projekt neben dem Archiv in der Datei Foswiki-2.1.11.sha1.
sha1sum /tmp/Foswiki-2.1.11.tgz
Prüfen: Die Ausgabe beginnt mit 6fd484903d10ca1ae908c67d7977bdedfe265c3e.
5. Archiv entpacken
Packt Foswiki nach /var/www aus. Dabei entsteht der Ordner /var/www/Foswiki-2.1.11.
sudo tar xzf /tmp/Foswiki-2.1.11.tgz -C /var/www
6. Ordner umbenennen
Ein Ordnername ohne Versionsnummer macht die Pfade in den Einstellungen einfacher.
sudo mv /var/www/Foswiki-2.1.11 /var/www/foswiki
7. Eigentümer setzen
Foswiki läuft als Benutzer www-data und muss in die Ordner für Seiten (data), Anhänge (pub) und Zwischendateien (working) schreiben. Außerdem schreibt es seine Einstellungen nach lib/LocalSite.cfg.
sudo chown -R www-data:www-data /var/www/foswiki
8. In den Programmordner wechseln
Die folgenden Befehle arbeiten im Ordner von Foswiki.
cd /var/www/foswiki
9. Grundeinstellungen anlegen
Das Werkzeug tools/configure legt die Einstellungsdatei lib/LocalSite.cfg an. -noprompt lässt es alle Pfade selbst ermitteln. Mit -set gibst du die Werte vor, die es nicht erraten kann.
sudo -u www-data perl tools/configure -save -noprompt -set {DefaultUrlHost}=http://localhost:8087 -set {ScriptUrlPath}=/bin -set {ScriptUrlPaths}{view}= -set {PubUrlPath}=/pub -set {SafeEnvPath}=/usr/bin:/bin -set {UserInterfaceInternationalisation}=1 -set {Languages}{de}{Enabled}=1
Was die Einstellungen bedeuten:
{DefaultUrlHost}– die Adresse, unter der das Wiki im Browser aufgerufen wird.{ScriptUrlPath}=/bin– Aktionen wie Bearbeiten oder Anmelden liegen unter/bin/…, z. B./bin/edit/Main/WebHome.{ScriptUrlPaths}{view}=(leer) – Seiten werden ohne Vorsatz angezeigt, also/Main/WebHomestatt/bin/view/Main/WebHome.{PubUrlPath}=/pub– unter dieser Adresse liegen Bilder und Anhänge.{SafeEnvPath}=/usr/bin:/bin– die Ordner, in denen Foswiki Hilfsprogramme wiegrepsucht. Ohne diese Einstellung findet Foswiki sie im FastCGI-Betrieb nicht, weil nginx keinen Suchpfad mitschickt. Viele Seiten enden dann mit dem Fehler502 Bad Gateway.{UserInterfaceInternationalisation}=1und{Languages}{de}{Enabled}=1– schaltet die Übersetzungen ein und gibt Deutsch frei. Foswiki richtet sich dann nach der Spracheinstellung des Browsers.
Prüfen: Die Ausgabe endet mit New configuration saved in /var/www/foswiki/lib/LocalSite.cfg.
10. Administratorpasswort setzen
Foswiki hat ein eingebautes Administratorkonto mit dem Anmeldenamen admin. Dieser Befehl legt sein Passwort fest. Foswiki speichert es nur verschlüsselt. Im Verlauf der Shell steht es aber im Klartext. Wer das nicht möchte, löscht die Zeile danach mit history -d und der Zeilennummer aus history.
sudo -u www-data perl tools/configure -save -set {Password}=AdminPasswort123
Prüfen: In der Einstellungsdatei steht jetzt eine verschlüsselte Zeichenfolge, die mit $apr1$ beginnt.
sudo grep "{Password}" lib/LocalSite.cfg
FastCGI-Dienst einrichten
11. systemd-Dienst anlegen
Das Archiv enthält unter tools/systemd/foswiki.service eine Vorlage. Die folgende Datei ist eine vereinfachte Fassung davon, mit Port 9010 statt 9000.
sudo nano /etc/systemd/system/foswiki.service
Füge diesen Inhalt ein (Strg+Umschalt+V), speichere mit Strg+O und Enter und beende nano mit Strg+X:
[Unit]
Description=Foswiki
After=network.target
[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/var/www/foswiki/bin/
ExecStart=/usr/bin/perl /var/www/foswiki/bin/foswiki.fcgi -n 3 -l 127.0.0.1:9010 -a foswiki
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
SyslogIdentifier=foswiki
[Install]
WantedBy=multi-user.target
Was die Angaben bedeuten:
User=www-data– Foswiki läuft mit denselben Rechten wie der Webserver und darf in seine Ordner schreiben.WorkingDirectory=– Foswiki erwartet, im Ordnerbingestartet zu werden.-n 3– drei Prozesse beantworten Anfragen gleichzeitig.-l 127.0.0.1:9010– der Dienst ist nur vom eigenen Rechner aus erreichbar.-a foswiki– unter diesem Namen erscheinen die Prozesse inpsundtop.ExecReload=–systemctl reload foswikilässt Foswiki geänderte Einstellungen neu einlesen.
12. systemd die neue Datei bekannt machen
systemd liest Dienstdateien nur beim Start oder auf Anweisung ein.
sudo systemctl daemon-reload
13. Dienst starten und Autostart einschalten
enable sorgt für den Start beim Hochfahren, --now startet den Dienst zusätzlich sofort.
sudo systemctl enable --now foswiki
Prüfen: Das Protokoll zeigt FastCGI: manager (pid …): initialized und für jeden der drei Prozesse server (pid …) started.
sudo journalctl -u foswiki -n 10
nginx konfigurieren
14. Konfiguration für Foswiki anlegen
Legt einen eigenen Server-Block auf Port 8087 an. Nur der Ordner pub mit Bildern und Anhängen wird direkt ausgeliefert. Alle Adressen unter /bin/ gehen an den FastCGI-Dienst. Alle übrigen Adressen gelten als Seitennamen und werden intern an /bin/view/ weitergereicht. Die Ordner data, lib und working sind damit von außen gar nicht erreichbar.
sudo nano /etc/nginx/sites-available/foswiki
Füge diesen Inhalt ein (Strg+Umschalt+V), speichere mit Strg+O und Enter und beende nano mit Strg+X:
server {
listen 127.0.0.1:8087;
server_name localhost;
root /var/www/foswiki;
client_max_body_size 20m;
# Nur pub/ wird als Datei ausgeliefert, ohne die Arbeitsordner
location ^~ /pub/ {
location ~ ^/pub/[^/]+/.*/_work_areas/ {
return 403;
}
try_files $uri =404;
expires 7d;
}
# Aktionen wie /bin/edit/Main/WebHome an Foswiki weitergeben
location ~ ^/bin/ {
fastcgi_pass 127.0.0.1:9010;
fastcgi_split_path_info ^(/bin/[^/]+)(/.*)?$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/bin/foswiki.fcgi;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
# Kurze Adressen: /Main/WebHome zeigt die Seite an
location / {
rewrite ^/(.*)$ /bin/view/$1 last;
}
}
fastcgi_split_path_info– zerlegt z. B./bin/edit/Main/WebHomein die Aktion/bin/editund den Seitennamen/Main/WebHome. Foswiki bekommt beides getrennt alsSCRIPT_NAMEundPATH_INFO.rewrite … /bin/view/$1 last– aus/Main/WebHomewird intern/bin/view/Main/WebHome. Im Browser bleibt die kurze Adresse stehen.
15. Konfiguration aktivieren
Ein Link in sites-enabled sorgt dafür, dass nginx die neue Seite lädt.
sudo ln -s /etc/nginx/sites-available/foswiki /etc/nginx/sites-enabled/foswiki
16. nginx-Konfiguration testen
Findet Tippfehler, bevor nginx neu geladen wird.
sudo nginx -t
Prüfen: Die Ausgabe endet mit test is successful.
17. nginx neu laden
Übernimmt die Konfiguration, ohne laufende Verbindungen abzubrechen.
sudo systemctl reload nginx
Testen
18. Startseite abrufen
Prüft, ob das Wiki über nginx antwortet.
curl -sI http://localhost:8087/System/WebHome
Prüfen: Die erste Zeile lautet HTTP/1.1 200 OK. Kommt stattdessen 502 Bad Gateway, läuft der Dienst aus Schritt 13 nicht, oder {SafeEnvPath} aus Schritt 9 fehlt.
19. Sperre der Einstellungen prüfen
Die Datei mit den Einstellungen darf nicht abrufbar sein.
curl -s -o /dev/null -w '%{http_code}\n' http://localhost:8087/lib/LocalSite.cfg
Prüfen: Die Ausgabe lautet 404. Foswiki sucht dabei eine Seite namens lib/LocalSite.cfg und findet keine.
20. Im Browser anmelden
Öffne http://localhost:8087. Ist der Browser auf Deutsch eingestellt, erscheint die Oberfläche auf Deutsch. Klicke oben auf Anmelden und melde dich mit dem Namen admin und dem Passwort aus Schritt 10 an. Foswiki zeigt dich dann als AdminUser an. Mit diesem Konto darfst du alles, auch Seiten bearbeiten und die Einstellungen im Browser unter http://localhost:8087/bin/configure ändern.
Für die tägliche Arbeit legst du besser ein persönliches Konto an: über die Seite System.UserRegistration (http://localhost:8087/System/UserRegistration). Soll dieses Konto Administratorrechte bekommen, trägst du es als AdminUser auf der Seite Main.AdminGroup ein.
Wo liegt was?
/var/www/foswiki/data– die Seiten als Textdateien, ein Ordner pro Web (z. B.Main,Sandbox)./var/www/foswiki/pub– Anhänge und Bilder./var/www/foswiki/lib/LocalSite.cfg– die Einstellungen.
Für eine Sicherung reichen diese drei. Hinweise zum Umstieg auf eine neue Version stehen im Archiv in der Datei UpgradeGuide.html.
Deinstallieren
1. Dienst stoppen und Autostart ausschalten
Beendet Foswiki und verhindert den Start beim Hochfahren.
sudo systemctl disable --now foswiki
2. Dienstdatei löschen
Entfernt die Dienstdatei aus Schritt 11.
sudo rm /etc/systemd/system/foswiki.service
3. systemd neu einlesen lassen
Damit systemd den gelöschten Dienst vergisst.
sudo systemctl daemon-reload
4. Seite in nginx deaktivieren
Löscht den Link aus sites-enabled.
sudo rm -f /etc/nginx/sites-enabled/foswiki
5. nginx-Konfigurationsdatei löschen
Löscht die Konfigurationsdatei der Seite.
sudo rm -f /etc/nginx/sites-available/foswiki
6. nginx neu laden
Übernimmt das Abschalten der Seite.
sudo systemctl reload nginx
7. Foswiki-Ordner und Archiv löschen
Entfernt Foswiki samt Seiten, Anhängen und Einstellungen. Achtung: Alle Inhalte des Wikis gehen dabei unwiderruflich verloren.
sudo rm -rf /var/www/foswiki /tmp/Foswiki-2.1.11.tgz
8. Perl-Module entfernen (optional)
Nur ausführen, wenn kein anderes Programm diese Module braucht.
sudo apt purge libcgi-pm-perl libcgi-session-perl libcrypt-passwdmd5-perl libcrypt-eksblowfish-perl libemail-address-xs-perl libemail-mime-perl libfile-copy-recursive-perl libfcgi-perl libfcgi-procmanager-perl liblocale-maketext-lexicon-perl liblocale-msgfmt-perl liblocale-codes-perl libarchive-zip-perl libmozilla-ca-perl
9. Nicht mehr benötigte Pakete entfernen
Entfernt Bibliotheken, die nur zusammen mit den Perl-Modulen installiert wurden.
sudo apt autoremove
Prüfen: Unter Port 8087 antwortet nichts mehr, curl meldet einen Verbindungsfehler.
curl -sI http://localhost:8087/
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
Open Knowledge (Freies Wissen): Alle Texte stehen unter der freien Lizenz Creative Commons Namensnennung – Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-SA 4.0) und können frei gelesen, geteilt und weiterverarbeitet werden.