aus "Homepage der UniBigBand Kaiserslautern"

PmWikiDe: WikiFarm

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 seperate Webseite. Jedes Wiki in einer Farm:

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 WikiGroups 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 WikiGroups installieren und testen, denn u.U. sind diese bereits ausreichend.

Wenn man dann feststellt, dass man ein weiteres Wiki benötigt, hat man zwei Möglichkeiten:

  1. Man führt 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. Man erstellt eine Wiki-Farm, indem man das existierende Wiki als 'Home-Wiki' nutzt und die meisten Programmdateien gemeinsam nutzt.

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

Wenn man sich für Alternative 2, eine Wiki-Farm, entscheidet, 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 absoulte 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.

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:

Hinweis

<< Web-Feeds | Dokumentationsindex | Problemlösungen >>

URL: http://www.uni-kl.de/bigband/pmwiki.php/PmWikiDe/WikiFarms
Zuletzt geändert am 12.03.2008 15:32 Uhr