Anleitung: Verschiebung eines Wikis

This page is a translated version of the page Manual:Moving a wiki and the translation is 100% complete.
Wenn das Wiki nur z.B. von /var/www/html/ nach /var/www/html/mywiki/ verschoben werden soll, findet sich hier eine Anleitung.

Diese Seite erklärt, wie man ein Wiki auf einen anderen Server verschiebt. Dies ist oft nötig, wenn auf einen anderen Webserver oder eine andere Domain (oder beides) umgezogen werden muss.

Der gefahrloseste Weg dafür besteht darin, bei beiden Wikis die selbe MediaWiki-Version zu verwenden. Es ist jedoch möglich, eine neuere MediaWiki-Version auf dem neuen Server zu installieren und direkt auf dem neuen Server ein Upgrade durchzuführen. Tatsächlich kann dies die einzige Option sein, wenn man beispielsweise sein Wiki auf eine neue Version upgraden will, die höhere Voraussetzungen hat (bspw. PHP Version), als auf dem alten Server verfügbar sind.

Die Einzelschritte sind grundsätzlich auf anderen Seiten beschrieben:

  1. Backup des Wikis erstellen.
  2. Die Backups vom alten auf den neuen Server übertragen.
  3. Die Backups auf dem neuen Server einspielen.
Bevor mit dem Backup des Wikis begonnen wird, kann es wünschenswert sein, das alte Wiki in den "nur-lesen"-Modus zu versetzen, damit niemand Änderungen vornehmen kann, während man das Wiki verschiebt. Wenn man das nicht tut, verliert man möglicherweise Änderungen/Uploads/Logs etc. die während des Migrationsprozesses vorgenommen wurden. Um dies zu bewerkstelligen, benutzt man die Direktive $wgReadOnly in LocalSettings.php. Zum Beispiel:
$wgReadOnly = 'Down for maintenance: access will be restored shortly';

Den neuen Server upgraden

Wenn man auf eine neuere MediaWiki-Version auf dem neuen Server upgradet, sollte man die Upgrade-Prozedur befolgen, statt das alte MediaWiki-Verzeichnis und Erweiterungsverzeichnis auf den neuen Server zu kopieren. Dafür lädt man eine neue MediaWiki-Version und neue Versionen der verwendeten Erweiterungen, die zur neuen MediaWiki-Version passen, auf dem neuen Server herunter. Dabei sollte man nicht vergessen, das Update-Script auszuführen.

Anmerkungen

  • Wenn sich die URL geändert hat (zum Beispiel bei einer neuen Domain), sollte man sicherstellen, dass alle Bezüge darauf in der LocalSettings.php abgeändert werden. Wenn VisualEditor verwendet wird, muss man auch die Parsoid-Konfiguration anpassen.
    • Links auf gecacheten Seiten können immer noch auf die alte Domain zeigen. Man muss möglicherweise die $wgCacheEpoch erhöhen, um vor diesem Zeitpunkt gecachete Seiten als ungültig zu erklären.
  • Prüfen Sie, ob für das upload/ Verzeichnis die korrekten Berechtigungen gesetzt sind, wenn Sie Uploads benutzen; der Web-Server muss Schreibzugriff darauf haben.
  • Stellen Sie auch sicher, das jedes Extension-Verzeichnis ebenfalls die korrekten Berechtigungen hat (z.B. bei Linux: chmod -R o=rx extensions)
  • Wenn ein Wiki manuell von einem Windows auf ein Linux verschoben werden soll, ist dies die beste Methode:
  1. Installieren Sie MediaWiki auf der Linux-Plattform manuell aus einer tar-Datei, wie hier beschrieben: Manuelle Installation von Wiki (d.h. versuchen Sie nicht, das Wiki über ein automatisiertes Paket zu installieren)
  2. Ersetzen Sie das neu installierte MediaWiki-Verzeichnis (z.B. /var/www/mediawiki...) auf Ihrer Linux-Maschine mit dem MediaWiki Basis-Verzeichnis von Ihrer Windows-Maschine.
  3. Überschreiben Sie die MySQL-Datenbank Ihrer Linux-Maschine (e.g. wikidb) mit der Wiki-Datenbank Ihrer Windows-Maschine (d.h. benutzen Sie die Backup- und Restore-Features von MySQL wie oben beschrieben).
  • Nachdem eine Wiki-Datenbank importiert wurde, können kleinere Probleme auftreten, obwohl die Datenbank funktioniert:
  1. Sie müssen möglicherweise den Searchindex reparieren: In phpMyAdmin, geben Sie "REPAIR TABLE wikidb.searchindex; " ein, um den Suchindex neu zu erstellen. wikidb ist der Name Ihrer Datenbank.
  2. Die Kollation einiger Zeilen kann sich geändert haben. Vergleichen Sie dies mit der Originaldatenbank.

Testen

Nun sollte man versuchen, das neue Wiki auf dem neuen Server zu benutzen. Man sollte sich als sysop und normaler Nutzer einloggen und prüfen, ob das Betrachten, Erstellen und Ändern von Seiten und das Hochladen von Dateien noch funktioniert. Jegliche Probleme, die von PHP oder MediaWiki selbst angezeigt werden, sollten behoben werden.

Um zu prüfen, ob der Umzug problemfrei funktioniert, kann man den kompletten Prozess auch befolgen, bevor man das alte Wiki tatsächlich in den "nur-lesen"-Modus setzt. Wenn man dann weiß, dass das neue Wiki auf dem neuen Server wie gewünscht funktioniert, kann man das alte Wiki in den "nur-lesen"-Modus versetzen und den Umzug erneut durchführen.

häufige Probleme

Auf Dateien kann nach Domainwechsel nicht zugegriffen werden

Die Spalte md_deps in der module_deps -Tabelle enthält absolute Dateipfade, welche dazu dienen, die Bilder und LESS-Dateien, von denen CSS abhängt, zu lokalisieren. Diese Pfade gehen kaputt, wenn das Wiki z.B. in einen anderen Ordner oder auf einen anderen Server verschoben wird. Nach der Verschiebung kann es sein, dass PHP-Warnungen auftauchen, dass auf bestimmte Dateien nicht zugegriffen werden konnte. In den aktuellen Versionen von MediaWiki kann dieses Problem durch die Ausführung von update.php gelöst werden, wodurch die Caches gelöscht werden.

In MediaWiki-Versionen älter als 1.25 (in denen phabricator:T37472 nicht implementiert ist) löscht update.php nicht die Inhalte der module_deps-Tabelle. Für diese Versionen behilft man sich dadurch, indem man manuell die falschen Einträge in der module_deps-Tabelle repariert:

-- Einträge in der Tabelle module_deps aktualisieren
SET @old='wiki.old-domain.org';
SET @new='wiki.new-domain.org';

UPDATE `module_deps` SET `md_deps` = REPLACE( `md_deps`, @old, @new );

Das kann verwendet werden, um falsche Pfadangaben zu korrigieren und den Fehler zu beheben.

Ein ähnlicher Fehler kann auftreten, wenn MediaWiki versucht, Nachrichten von Ressourcenladeprogrammen zu lesen. In diesem Fall besteht die Lösung darin, die entsprechenden Tabellen zu stutzen:

-- Nachrichten bezogene Caches abkürzen
TRUNCATE TABLE `msg_resource`;
TRUNCATE TABLE `msg_resource_links`;

Siehe auch