Wikifarmen
Eine Wikifarm sind zwei oder mehr Wikis, die auf einem Webserver installiert sind und einige Komponenten gemeinsam nutzen. Der Begriff ist abgeleitet von der englischen Phrase 'Server Farm'.
Diese Seite gibt Aufschluss über die Hintergründe rund um Wikifarmen 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 es für Administratoren, die zum ersten Mal eine Farm installieren, so einfach wie möglich zu halten.
Diese Seite wird drei Wege, Inhalte zu organisieren, diskutieren:
- Benutzung von Wikigruppen
- Benutzung von unabhängigen Wiki-Sites mit einer gemeinsamen, geteilten Kodebasis (eine "Farm")
- Benutzung von unabhängigen Wiki-Sites mit einer vollständigen PmWiki-Installation pro Site
Die Wahl zwischen separaten Wiki-Sites und Wikigruppen
Was spricht für Wikigruppen?
Wenn man Inhalte auf unabhängig voneinander installierte Wikis verteilt (z. B. mit ihrem eigenen URL), ist es schwierig (aber nicht unmöglich), Dienstleistungen anzubieten, die Zugriff auf mehr als ein Wiki benötigen. die PmWiki-Suchfunktion zum Beispiel kann nur in einem Wiki suchen. Eine Farm zu benutzen als einen Weg, verwandte Inhalte zu unterteilen ist generell eine schlechte Idee. Ein viel besserer Weg, den Inhalt zu unterteilen, ist der Gebrauch von Wikigruppen. Siehe auch Motivation für Wiki-Gruppen.
Was spricht für unabhängige Wiki-Sites?
Wenn der Inhalt im Großen und Ganzen unabhängig ist und es kaum oder keine Notwendigkeit gibt, Daten der Sites miteinander zu teilen, ist es sinnvoll, die Wikis in zwei unabhängig installierte Sites aufzuteilen.
Die Wahl zwischen getrennten, unabhängigen Installationen von PmWiki und einer Wikifarm
Sowie Sie entschieden haben, dass Sie ein getrenntes Wiki (mit seinem eigenen URL) brauchen, haben Sie zwei grundlegende Möglichkeiten:
- Sie installieren PmWiki in einem neuen Verzeichnis. Das bringt Ihnen zwei gänzlich unabhängige Wikis, die alles vollständig selbst enthalten. Das ist keine Wikifarm.
- Sie erzeugen eine Wikifarm, indem Sie ein existierendes Wiki als das "Home-Wiki" benutzen, worin die meisten geteilten PmWiki-Komponenten liegen werden.
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 Upgrade auf eine neue Version von PmWiki für jedes der Wikis durchzuführen, indem er lediglich einmal die zentral gespeicherten Programmdateien erneuert.
Aus der Sicht eines Nutzers der verschiedenen Wikis gibt es keinen Unterschied zwischen getrennten, alles selbst enthaltenden Installationen von PmWiki und getrennten Wikis in einer Wikifarm, jedes Wiki der Farm ist absolut unabhängig von den anderen und erscheint als eine separate Website. Jedes Wiki in einer Farm:
- hat seinen eigenen URL und die URLs können verschiedenen Domains zugeordnet sein,
- kann sein eigenes Layout haben, indem es unterschiedliche Skins benutzt,
- kann seine eigenen Erweiterungen oder "Rezepte" haben, siehe Cookbook Basics,
- kann seine eigenen administrativen Verantwortlichkeiten für die jeweilige Konfiguration haben.
Was spricht für unabhängige, alles selbst enthaltende Installationen von PmWiki?
- Es ist keine Wikifarm und erfordert keine zusätzlichen administrativen Kenntnisse - es sind einfach zwei Installationen.
- Wenn Sie sich entschließen, eines der Wikis auf einen anderen Server zu übertragen, können Sie einfach des Wikis Verzeichnisstruktur auf den anderen Server kopieren und es wird funktionieren (unter der Voraussetzung, dass dort ein Webserver mit PHP vorhanden ist).
- Sie können auf den verschiedenen Wikis unterschiedliche Versionen von PmWiki laufen lassen (gut zum Testen neuer Versionen).
- Egal, wie schlimm Sie eine Installation verhunzt haben, es hat auf die anderen keinen Einfluss.
Was spricht für eine Wikifarm?
- Sie können für alle Wikis in der Farm gleichzeitig ein Upgrade einspielen, indem Sie es in Ihr Home-Wiki einspielen.
- Rezepte können über alle Wikis hinweg geteilt werden.
- Teile Ihrer Konfiguration kann über die Wikigrenzen hinweg geteilt werden.
- Der meiste Kode ist an einer Stelle gespeichert und kann von allen Wikis geteilt werden.
Ich kann mich immer noch nicht entscheiden, ob ich eine Farm nutzen soll ...
Die gute Nachricht ist: Sie brauchen sich nicht vorab zu entscheiden. In der Praxis wird empfohlen, erst eine "normale" oder einzelne Installation von PmWiki durchzuführen und diese eine gewisse Zeit zu benutzen. Legen Sie Seiten an und bearbeiten Sie sie. Lernen Sie Rezepte aus dem Kochbuch (Cookbook) hinzuzufügen. Sie sollten unbedingt auch die Funktionen von Wikigruppen installieren und testen, denn u. U. sind diese bereits ausreichend.
Wenn Sie entschieden haben, eine Wikifarm zu erzeugen, dann lesen Sie weiter ...
Erstellen/Konfigurieren einer Wikifarm
Die Grundvoraussetzung
Bevor Sie eine Farm erstellen, stellen Sie sicher, dass:
- Sie eine laufende Installation eines PmWiki haben, die das 'Home-Wiki' für Ihre Farm werden kann
- alle Wikis der Farm später auf dem gleichen Webserver laufen werden
- jedes Wiki einen eigenen URL bekommen kann, wie z. B.:
- https://www.beispiel.de/wiki1/
- https://www.beispiel.de/wiki2/
- https://anderes.beispiel.de/wiki1/
- usw.
Erstellen des 'Home-Wiki'
Sie haben doch zu diesem Zeitpunkt eine laufende PmWiki-Installation, oder? Das ist gut, weil dieses Wiki sich anschickt, das 'Home-Wiki' der Farm zu werden.
Erstellen Sie im Verzeichnis, das das existierende Wiki enthält, eine Datei local/farmconfig.php. Diese Datei wird die lokalen Anpassungen enthalten, die für die ganze Farm zutreffen sollen. Z. B. kann man in farmconfig.php ein Admin-Passwort festlegen, welches dann in allen Wikis der Farm gültig ist.
Wenn der URL für das existierende 'Home-Wiki' https://www.beispiel.de/pmwiki/ ist, dann sieht die einfachste farmconfig.php wie folgt aus:
<?php if (!defined('PmWiki')) exit(); $FarmPubDirUrl = 'https://www.beispiel.de/pmwiki/pub';
Dies lädt dann die Variable $FarmPubDirUrl
mit dem Speicherort des pub/-Verzeichnisses des 'Home-Wikis'. Alle Wikis in der Farm teilen sich dieses pub/-Verzeichnis. 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, dies sind schon alle Änderungen, die benötigt werden, um das existierende 'Home-Wiki' in eine Wiki-Farm zu verwandeln.
Ein Weiteres Wikis innerhalb der Farm erstellen
<?php include_once([='=]''path/to/pmwiki.php''');
path/to/pmwiki.php
ist der Pfad, in dem die Datei pmwiki.php des 'Home-Wiki' gespeichert ist. Sie können sowohl eine absolute Pfandangabe (/home/username/pmwiki/pmwiki.php
) als auch eine relative Pfadangaben (../pmwiki/pmwiki.php
) benutzen. Benutzen Sie keinen URL - es darf also kein 'https://
' in der Pfadangabe enthalten sein. Für Windows-Web-Server ist der komplette Dateipfad zu benutzen C:/Apache Group/Apache2/www/mynewwiki/
.
https://
' beginnt. PmWiki wird versuchen, automatisch ein beschreibbares wiki.d/-Verzeichnis zu erzeugen, 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.
Anpassungen
Jede Wiki-Farm erbt die Einstellungen aus farmconfig.php. Alle Anpassungen, die in der Wiki-Farm übergreifend Gültigkeit haben sollen, müssen also in farmconfig.php gespeichert sein.
Erstellen Sie ein local/-Verzeichnis innerhalb des Dateienverzeichnisses von jedem Wiki, in dem alle lokalen Anpassungen enthalten sein werden, die nur auf das jeweiligen Wiki wirken sollen. 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, das 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 Wikifarm-Terminologie
- Es ist wichtig zu wissen, dass nicht alle Rezepte aus dem Kochbuch für Wikifarmen 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 der Seite Wikifarmen für Fortgeschrittene, die auch Verweise auf Schritt-für-Schritt-Anleitungen enthält (in englisch), um Wikifarmen 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.
Siehe auch:
Kategorie: WikiFarms
Übersetzung von PmWiki.WikiFarms, Originalseite auf PmWikiDe.WikiFarms — Retroenlaces
Zuletzt geändert: | PmWikiDe.WikiFarms | am 03.07.2022 |
PmWiki.WikiFarms | am 03.07.2022 |