WikiFarmen

Administratoren (Fortgeschrittene)

Eine WikiFarm sind zwei oder mehr Wikis, die auf einem Webserver installiert sind und einige Komponenten gemeinsam nutzen. Der Begriff ist abgeleitet von 'Server Farm'.

Diese Seite gibt Aufschluss über die Hintergründe rund um WikiFarms und beschreibt, wie man eine 'normale' PmWiki-Konfiguration in eine WikiFarm überführt, indem man weitere PmWikis hinzufügt. Es gibt mehrere Wege eine WikiFarm zu konfigurieren; diese Seite beschreibt lediglich einen Weg, um für Administratoren, die zum ersten Mal eine Farm installieren, es so einfach wie möglich zu halten.

Wozu braucht man eine Farm

Die primäre Motivation für eine WikiFarm ist es, den administrativen Aufwand zu reduzieren, den man hat, wenn man mehrere Wikis parallel betreibt. In einer Farm werden die meisten Programmdateien von allen Wikis der Farm gemeinsam genutzt, aber an einer einzigen Stelle gespeichert. Der Administrator ist somit in der Lage z.B. ein Update des PmWiki durchzuführen, indem er lediglich einmal die zentral gespeicherten Programmdateien erneuert.

Für den Nutzer der verschiedenen Wikis ist jedes Wiki der Farm absolut unabhängig von den anderen und erscheint als eine separate Webseite. Jedes Wiki in einer Farm:

  • hat seine eigene URL und die URL kann einer anderen Domain zugeordnet sein
  • kann sein eigenes Layout haben, indem es unterschiedliche Skins benutzt
  • kann seine eignen Add-ons und Anpassungen haben, siehe Cookbook
  • kann seine eigenen administrativen Regelungen für die jeweilige Konfiguration haben

Wann sollte man keine Farm benutzen

Weil die Wikis einer Farm unabhängig voneinander sind, ist es schwierig (aber nicht unmöglich) Funktionalitäten anzubieten, die den Zugriff zu den Inhalten von mehreren Wikis benötigen. Z.B. kann die PmWiki-Suchfunktion nur innerhalb eines Wikis suchen. Benutzt man eine Farm um ein Überthema in Teile zu untergliedern, ist dies grundsätzlich eine schlechte Idee. Um eine Unterteilung zu erreichen sollte man eher Wikigruppen benutzen.

Ich kann mich nicht entscheiden, ob ich eine Farm nutzen soll ...

Die gute Nachricht ist: man braucht sich nicht vorab zu entscheiden. In der Praxis wird empfohlen erst eine normale Installation eines PmWiki durchzuführen und diese eine gewisse Zeit zu benutzen. Man legt Seiten an und bearbeitet sie. Man lernt Rezepte aus dem Kochbuch (Cookbook) hinzu zu fügen. Man sollte unbedingt auch die Funktionen von Wikigruppen installieren und testen, denn u.U. sind diese bereits ausreichend.

Wenn Sie entschieden haben, dass Sie ein weiteres Wiki brauchen, haben Sie zwei grundlegende Wahlen:

  1. Führen Sie eine komplette Neuinstallation eines PmWiki in einem neuen Verzeichnis durch. Das ergibt zwei völlig unabhängige Wikis, die absolut eigenständig sind. Dies ist keine Wiki-Farm.
  2. Sie erstellen eine Wiki-Farm, indem Sie das existierende Wiki als 'Home-Wiki' nutzen und die meisten Programmdateien gemeinsam nutzen.

Die Alternative 1 sollte in folgenden Fällen gewählt werden:

  • da es sich bei dieser Konfiguration um keine Wiki-Farm handelt, braucht man auch kein zusätzliches KnowHow um die zweite Seite zu administrieren.
  • Wenn man vor hat, eines der Wikis auf einen anderen Server zu kopieren, kann man dies sehr einfach tun, indem man das Wiki-Verzeichnis auf den zweiten Server kopiert. Dort wird es (richtige PHP-Version vorausgesetzt) problemlos funktionieren.
  • Man kann in jedem PmWiki eine andere Version des PmWiki benutzen, z.B. um diese zu testen.
  • Installationsfehler wirken sich nicht auf die jeweils andere Instanz aus.

Wenn Sie sich für Alternative 2, eine Wiki-Farm, entscheiden, geht man wie folgt vor ...

Vorbereitung

Bevor man eine Farm erstellt, ist sicher zu stellen dass:

Erstellen des 'Home-Wiki'

Sie haben eine laufende PmWiki-Installation? Gut, weil diese nun das 'Home-Wiki' der Farm wird.

Im Verzeichnis, das das existierende Wiki enthält, erstellt man eine Datei local/farmconfig.php. Diese Datei wird die Farm-Anpassungen enthalten. Z.B. kann man in farmconfig.php ein Admin-Passwort festlegen, welches dann in allen Wikis der Farm gültig ist.

Wenn die URL für das existierende 'Home-Wiki' http://www.example.com/pmwiki/ ist, dann sieht die einfachste farmconfig.php wie folgt aus:

    <?php if (!defined('PmWiki')) exit();
      $FarmPubDirUrl = 'http://www.example.com/pmwiki/pub';

Dies lädt dann die Variable $FarmPubDirUrl mit dem Speicherort des 'Home-Wiki' und somit auch des /pub-Directorys. Das /pub-Verzeichnis enthält alle Skin-Definitionen und GUI-Edit-Buttons, die von den Wikis der Wiki-Farm gemeinsam genutzt werden sollen.

So verblüffend dies klingt, sind dies schon alle Änderungen, die benötigt werden, um das existierende 'Home-Wiki' in eine Wiki-Farm zu verwandeln.

Weitere Wikis innerhalb der Farm erstellen

1. Erzeugen eines neuen Verzeichnisses, das das neue Wiki enthalten wird. Es muss vom Webserver erreichbar sein, so wie das des 'Home-Wiki'.
2. Erzeugen einer Datei index.php in diesem Verzeichnis, die die folgende Anweisung enthält:
    <?php include('path/to/pmwiki.php');
Damit benutzt das neue PmWiki die Dateien und Programme aus dem 'Home-Wiki'. Die Angabe path/to/pmwiki.php ist der Pfad, in dem die Datei pmwiki.php des 'Home-Wiki' gespeichert ist. Man kann sowohl eine absolute Pfandangabe (/home/username/pmwiki/pmwiki.php) als auch eine relative Pfadangaben (../pmwiki/pmwiki.php) benutzen. Benutze keine URL - es darf also kein 'http://' in der Pfadangabe enthalten sein. Für Windows-Web-Server ist der komplette Dateipfad zu benutzen C:/Apache Group/Apache2/www/mynewwiki/.
3. Wenn man nun das neue Wiki mit dem Webbrowser aufruft, also eine URL, die mit 'http://' beginnt, wird automatisch das Wiki-Directory wiki.d/ erzeugt, in dem die Wiki-Seiten gespeichert werden. Wenn eine Fehlermeldung erscheint, befolgen Sie die Angaben der Fehlermeldung. Wenn Sie die Option "slightly more secure installation" wählen, müssen Sie beide genannten Kommandos ausführen.

Ihre Wiki-Farm ist nun installiert und enthält 2 Wikis. Um weitere Wikis hinzuzufügen, müssen Sie einfach die letzten 3 Schritte wiederholen.

Einstellungen

Jede Wiki-Farm erbt die Einstellungen aus farmconfig.php. Alle Einstellungen, die in der Wiki-Farm Gültigkeit haben, müssen also in farmconfig.php gespeichert sein.

Um Einstellungen für jeweils ein Wiki vorzunehmen ist ein Verzeichnis local/ zu erstellen, in dem alle lokalen Einstellungen des jeweiligen Wiki gespeichert werden. Die Farm-Einstellungen werden vor den lokalen Einstellungen gelesen, so dass die lokalen Einstellungen die farmweit geltenden überschreiben. Erzeugen Sie wenigstens eine config.php-Datei mit einem neuen Wiki-Titel:

<?php if (!defined('PmWiki')) exit();
  ## Title Ihres Wiki in der Farm
  $WikiTitle = 'Neues Wiki';

Die PmWiki-Variable $FarmD zeigt auf das Verzeichnis, in dem die pmwiki.php des 'Home-Wiki' gespeichert ist. Sie wird als Prefix benötigt, um auf gemeinsam genutzte Komponenten des jeweiligen Wikis zuzugreifen. Zum Beispiel:

  • $FarmD/scripts/ zeigt auf das gemeinsame Verzeichnis scripts/
  • $FarmD/pub/ zeigt auf das gemeinsame Verzeichnis pub/ directory
  • $FarmD/cookbook/ zeigt auf das gemeinsame Verzeichnis cookbook/ directory

Jedes Skript, dass Sie in farmconfig.php einfügen, muss mit einer Zeile wie der folgenden eingefügt werden:

include_once("$FarmD/cookbook/scriptfile.php");
Beachten Sie die doppelten Anführungszeichen. Einfache Anführungszeichen würden für die per-Farm-Einfügung funktionieren, aber sie funktionieren nicht für die Variable $FarmD.

Hinweise

  • Die Terminologie, die in Wiki-Farms benutzt wird, ist nicht durchgängig. Siehe auch WikiFarmTerminology
  • Es ist wichtig zu wissen, dass nicht alle Rezepte aus dem Kochbuch für Wiki-Farms geschrieben und getestet wurden. Beachten Sie die Informationen wie das jeweilige Rezept auf die Wiki-Farm anzuwenden ist.
  • Es gibt viel, viel mehr Funktionalitäten, die man mit einer Wiki-Farm nutzen kann. Einige sind beschrieben in PmWiki:WikiFarmsAdvanced, das auch Schritt-für-Schritt-Anleitungen enthält, um Wiki-Farms zu installieren.

Passwort Gebrauch/Autorisierung in Farm-Wikis

Wie kommt es, dass ich meine Autorisierung behalte, wenn ich in ein anderes Wiki innerhalb der Farm wechsle?

PmWiki nutzt PHP-Sessions um Autentifikations- und Autorisierungsinformationen zu behalten und per Standard richtet PHP die Dinge so ein, dass alle Interaktionen mit dem gleichen Server als Teil der gleichen Sitzung (Session) angesehen werden.

Ein einfacher Weg, das zu bereinigen, ist sicherzustellen, dass jedes Wiki einen eigenen Cookienamen für seine Sessionidentitität benutzt. Nahe des Anfangs einer local/config.php-Datei eines Wikis, bevor "authuser" oder irgend ein anderes Rezept aufgerufen wird, fügen Sie eine Zeile wie die folgende ein:

session_name('XYZSESSID');

Sie können irgend einen alphanumerischen Namen für XYSESSID einsetzen, für ein Wiki "cs559-1" würden Sie vielleicht dies wählen:

session_name('CS559SESSID');

Das wird die Sitzungen unabhängig voneinander halten.

Kategorie: WikiFarms


Übersetzung von PmWiki.WikiFarms Originalseite auf PmWikiDe.WikiFarms - Rückverweise
Zuletzt geändert:
PmWikiDe.WikiFarms am 18.06.2012
PmWiki.WikiFarms am 20.09.2011