Mehrere Mediawiki-Instanzen trotz Debian-Paket

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Web und Mailserver ‹ Mehrere Mediawiki-Instanzen trotz Debian-Paket


Warnung.png Warnung: Dieser Artikel beschäftigt sich nicht mit der grundlegenden Installation und Konfiguration von Mediawiki, lediglich mit der Aufsplittung in mehrere Instanzen!


Idee

Manchmal kommt es vor, dass man auf einem Webserver mehrere Wikis hosten möchte. Hierzu sind mehrere Instanzen einer Wiki-Software, in diesem Beispiel Mediawiki, nötig.

Das Problem daran ist, dass damit, ohne ein bisschen Kreativität, nur die Möglichkeit bleibt, Mediawiki mehrmals getrennt von Hand zu installieren. Das ist aufwendig und nimmt vor allem die Möglichkeit, über das Debian-Paketsystem auf dem aktuellen Stand zu bleiben.

Doch dank der Struktur des Debianpackage.png mediawiki-Paketes in Debian ist es, mit ein bisschen Magie, möglich, mehrere Instanzen auch mit dem Debian-Paket zu betreiben.

Im Abschnitt [#Automatisches_Management-Skript Automatisches Management-Skript] wird ein Skript vorgestellt, das die Verwaltung von beliebig vielen Instanzen mit nur wenigen Kommandos inkl. semi-automatischer Updates ermöglicht.

Basisinstallation

Zunächst installieren wir das Debianpackage.png mediawiki-Paket sowie einige nette Extras:

root@debian:~# apt-get install mediawiki mediawiki-extensions mysql-server

Mehrere Instanzen

Analyse und Annahmen

Schauen wir uns einmal an, was das Paket installiert. Im Wesentlichen drei wichtige Dinge:

  • /usr/share/mediawiki - Hier liegen alle statischen Dateien und der Mediawiki-Code. All das teilen sich alle Instanzen.
  • /var/lib/mediawiki - Hier liegt eine Instanz des Wikis, mit Symlinks auf die statischen Daten und einigen lokalen Verzeichnissen
  • /etc/mediawiki - Hier ist Platz für die Konfiguration der Instanzen und hier liegt die Apache-Konfiguration

Im Folgenden werden wir zwei Mediawiki-Instanzen anlegen. Hierfür benutzen wir die Pfade /var/www/wikis/wiki1 und /var/www/wiki2. Die entsprechende Mediawiki-Konfiguration dazu legen wir in /etc/mediawiki ab, so dass dort folgende Struktur entsteht:

/etc/mediawiki/
|- wiki1/
   |- LocalSettings.php
   |- AdminSettings.php
|- wiki2/
   |- LocalSettings.php
   |- AdminSettings.php

Wiki-Instanzen anlegen

Die Wiki-Instanzen legen wir an, indem wir einfach den Inhalt von /var/lib/mediawiki in unsere Wiki-Verzeichnisse kopieren:

root@debian:~# mkdir -p /var/www/wikis
root@debian:~# cp -pra /var/lib/mediawiki /var/www/wikis/wiki1
root@debian:~# cp -pra /var/lib/mediawiki /var/www/wikis/wiki2

Danach legen wir die Konfigurations-Verzeichnisse an:

root@debian:~# mkdir -p /etc/mediawiki/wiki1
root@debian:~# mkdir -p /etc/mediawiki/wiki2

Hierin werden dann die Dateien AdminSettings.php und LocalSettings.php entsprechend der Mediawiki-Installationsanleitung angelegt. Diese müssen dann in die Wiki-Instanzen gelinkt werden:

root@debian:~# ln -fs /etc/mediawiki/wiki1/* /var/www/wikis/wiki1
root@debian:~# ln -fs /etc/mediawiki/wiki2/* /var/www/wikis/wiki2

ACHTUNG: Wenn das MediaWiki-Installationstool ausgibt ...

Installation successful! Move /var/lib/mediawiki/config/LocalSettings.php to /etc/mediawiki, then follow this link to your wiki.

... muss natürlich die Konfiguration aus dem entsprechenden Verzeichnis, z.B. /var/www/wiki1/config/LocalSettings.php kopiert werden, nicht aus /var/lib/mediawiki!

Apache-Konfig anpassen

Das Konfigurations-Fragment für den Apache-Webserver liegt in /etc/mediawiki/apache.conf und geht von einer einzelnen Instanz aus. Mit Hilfe von regulären Ausdrücken können wir es recht universell anpassen:

<Directory ~ "^/var/www/wikis/.*">
   Options +FollowSymLinks
   AllowOverride All
   order allow,deny
   allow from all
</Directory>

# some directories must be protected
<Directory ~ "^/var/www/wikis/.*/config">
   Options -FollowSymLinks
   AllowOverride None
</Directory>
<Directory ~ "^/var/www/wikis/.*/upload">
   Options -FollowSymLinks
   AllowOverride None
</Directory>

Nach einem

root@debian:~# /etc/init.d/apache2 reload

sollten die Wikis dann schon erreichbar sein!

Fazit

Dank der Trennung innerhalb des Debianpackage.png mediawiki-Pakets ist es recht einfach, mehrere Instanzen ausgehend vom Paket zu erzeugen. Ein bisschen Arbeit bleibt beim Update immer noch, denn die Instanzen müssen angepasst werden, falls sich in /var/lib/mediawiki etwas ändert.

Automatisches Management-Skript

Mit diesem Skript ist eine automatisierte Verwaltung der Instanzen möglich: mediawiki-multiinstance.

Warnung.png Warnung: Es sollte nicht zur Gewohnheit werden, fremde Skripts ohne nähere Prüfung als root auszuführen!


Anleitung zur Installation von zwei Wikis

Zunächst wird das Skript im System installiert, z.B. mit

root@debian:~# wget -O/usr/local/bin/mediawiki-multiinstance http://shore.naturalnet.de/~nik/mediawiki-multiinstance
root@debian:~# chmod +x /usr/local/bin/mediawiki-multiinstance

Dann wird mit dem ersten Aufruf die Umgebung angelegt und das erste Wiki erstellt:

root@debian:~# mediawiki-multiinstance add wiki1

Das Skript stellt beim ersten Aufruf Fragen zu den gewünschten Orten. Die Frage nach der template instance ist Debian-Standard und soltle so übernommen werden!

Weiterhin wird die Mediawiki-Installation in das Verzeichnis des ersten Wikis kpiert. Danach ruft man im Browser das Installtool auf, z.B. unter http://example.com/wikis/wiki1 .

Nachdem das Installtool die Datei LocalSettings.php angelegt hat, kann diese mit dem Skript kopiert werden:

root@debian:~# mediawiki-multiinstance config wiki1

Danach ist das erste Wiki sofort einsatzfähig. Genau so wird dann mit allen weiteren Wikis verfahren.

Update der Instanzen nach einem MediaWiki-Update

Nach einem Media-Wiki-Update aus dem Debian-Paket können alle so angelegten Instanzen mit einem einzigen Kommando geupdatet werden:

root@debian:~# mediawiki-multiinstance update

Weitere Kommandos

Weiterhin gibt es die folgenden Kommandos:

root@debian:~# mediawiki-multiinstance delete wiki1

Dieser Aufruf löscht das Wiki wiki1.

root@debian:~# mediawiki-multiinstance apache

Dieser Aufruf gibt die Konfiguration für den Apache-Webserver aus, die dann z.B. in /etc/mediawiki/apache.conf geschrieben werden kann.

Credits

Diese Anleitung ist aus dem Thread Mediawiki mal 2 bitte!!!! im Forum in Zusammenarbeit mit ssc entstanden.

Fragen und Anregungen

Fragen udn Anregungen hierzu können gerne per Mail unter nik@naturalnet.de gestellt werden, oder eben im Forum!