Manual:Restore eines Wikis aus einem Backup

This page is a translated version of the page Manual:Restoring a wiki from backup and the translation is 98% complete.
Outdated translations are marked like this.

Man sollte regelmäßig ein Backup seines Wikis durchführen, auch wenn man es niemals wiederherstellen muss: Backups sorgen dafür, dass man ruhig schlafen kann. Wie auch immer, ein Backup ist sinnlos, wenn man es nicht wiederherstellen "kann", und die Übung, ein Backup wiederherzustellen, vermeidet spätere Schwierigkeiten. Daher die folgende Anleitung.

Versionen und Updating

Die Anleitung auf dieser Seite sollte für mehr oder weniger alle bestehenden Versionen von MediaWiki zutreffend sein. Man kann die Database auf einer weiter zurückliegende Version von MediaWiki wiederherstellen, aber sollte sicherstellen, das Update-Skript durchzuführen. Die Wiederherstellung einer Database einer neueren Version in einer älteren Version der Software wird nicht unterstützt.

Dateiübertragung

Außer wenn sie direkten Zugriff auf den Server, auf dem das Wiki gehostet ist haben, (und selbst dann) können sie eine Methode auswählen, um die Datenfiles zu übertragen:

Überblick

  1. Wiederherstellung der Database, Benutzer und Berechtigungen
  2. Import des Database-Backups
  3. Import der MediaWiki-Files
  4. Überprüfung der Konfigurationsdatei
  5. Test

Wiederherstellung der Database, Benutzer und Berechtigungen

Stellen Sie sicher, dass sie auf dem Server, auf dem sie MediaWiki wiederherstellen, Folgendes haben:

  1. eine funktionierende Instanz von MySQL
  2. einen MySQL Benutzer mit notwendigen Berechtigungen, wenn Sie nicht MySQL Root benutzen können

Wenn Sie ein Backup aufgrund eines Datenbankfehlers wiederherstellen ziehen sie in Erwägung MySQL neu zu installieren! Wenn MySQL korrekt arbeitet, erzeugen Sie eine neue MySQL Datenbank und gewähren sie ihrem Benutzer-Account die unten aufgelisteten Berechtigungen für die Database. Sie können die MySQL Dokumentation, die Control Panel Dokumentation ihres Host-Providers oder die Dokumentation von den anderen Hilfsprogrammen, die sie benutzen, heranziehen, um Informationen darüber zu erhalten, wie sie dies durchführen können. Unter der Eingabeaufforderung von MySQL können sie als MySQL Root folgendes tun:


CREATE DATABASE wikidb;
CREATE USER wikidb_user IDENTIFIED BY 'wikidb_userpassword';

USE wikidb;
GRANT SELECT, UPDATE, INSERT, DELETE, ALTER, CREATE, INDEX, DROP, LOCK TABLES, USAGE ON wikidb.* TO wikidb_user;
Es macht nichts, wenn die Database nicht den selben Namen hat; tatsächlich ist es in einer kommerziellen Hosting-Umgebung, wo dem Database Namen gewöhnlich ein hosting account Benutzernamen vorangestellt ist, fast sicher, dass Sie einen anderen Database Namen haben. Darüberhinaus kann der Benutzername genauso wie das Benutzerpasswort abweichen. Sie müssen da das LocalSettings.php File in der neuen Umgebung daher entsprechend ändern.

Import des Database Backups

Als nächsten Schritt importieren Sie ihr Database Backup. Dies erzeugt die Tabellen in der Database und füllt sie mit Daten. Der Import-Vorgang benötigt unterschiedlich lange, abhängig von der Anzahl der Seiten, Benutzer, Bearbeitungen, etc. in Ihrem Wiki.

Methoden

Aus der Kommandozeile mit mysqladmin

Wenn eine Database existiert und Sie sie komplett durch das Backup ersetzen wollen. Um die vorhandene Database zu entfernen:

mysqladmin -u wikidb_user -p drop wikidb

Setzen sie die zutreffenden Werte für wikidb_user und wikidb ein. Der Parameter -p bewirkt die Aufforderung zur Passworteingabe.

Weiter um eine neue Database zu erzeugen:

mysqladmin -u wikidb_user -p create wikidb

For example after backing up with mysqldump:

# Don't do this now: This is how you might have created a backup earlier.
mysqldump --default-character-set=binary --user=wikidb_user --password=wikidb_userpassword wikidb > dump_of_wikidb.sql
# The wikidatabase wikidb from which you backed up may have a different name
# than the wikidatabase wikidb you've created above. Of course wikidb_user and
# wikidb_userpassword may be different as well.

Stellen Sie sicher, dass das korrekte Character Set eingestellt ist, andernfalls könnte die Wiederherstellung fehlschlagen. Prüfen Sie in der LocalSettings.php, welches Character Set eingestellt ist.

Um dump_of_wikidb.sql von der Kommandozeile aus zu importieren, machen Sie einfach folgende Eingabe:

mysql -u wikidb_user -p wikidb < dump_of_wikidb.sql

und geben Sie anschließend - falls nötig - ein:

php wikifolder/maintenance/update.php
# Most people name their wikifolder simply "w", making this pathname 
# something like "htdocs/w/maintenance/update.php"
Nachdem sie dump verwendet haben, sollten sie nicht mysqlimport verwenden, um ihre Wiki-Database wiederzustellen, sondern sql, da es für mysqlimport erforderlich ist, dass die Daten in einem begrenzten Textformat, z.B. CSV geladen werden, während der Output von mysqldump eine Sequenz von SQL-Befehlen ist.
Wenn sie das alte LocalSettings.php nicht in die neue Installation übertragen, stellen sie sicher, dass das Database Prefix in der neuen Installation auf das der früheren Installation gesetzt ist, bevor sie php update.php starten.
Wenn ihr Wiki nach dem Import eines Database dump langsam ist, könnte es sein, dass sie die Indices neu aufbauen müssen. Siehe Indices vorhanden nach Import von SQL-Files, aber nicht wirklich indiziert

Mit dem Browser für phpMyAdmin

Öffnen Sie im Browser ihr phpMyAdmin, loggen sie sich ein, wählen Sie die Wiki Database (Schauen Sie in LocalSettings.php den Namen nach, wenn Sie sich nicht sicher sind). Wählen sie Structure, localhost, Your_Table. Wählen Sie CheckAll. Wählen Sie aus dem Drop-Down-Menue Drop und dann OK, um die alte Tabelle zu löschen. Klicken Sie auf Import, wählen Sie Browse, wählen Sie ihr SQL-File aus und anschließend Importieren. Klicken sie auf Go[1].

Bitte denken Sie auch daran, die File System Komponenten des Wikis wiederherzustellen, die benötigt werden, z.B. images, Logo und Extensions (siehe oben unter mysql).

Abhängig von den timeout settings und der Größe des SQL Files kann es mehrere Versuche nötig machen, alles zu importieren. Führt man den Import nicht vollständig durch, kann dies zu einem inkonsistenten Status der Database führen, z.B. fehlende Revisionen

externe Links

Mit einem XML dump

Hauptartikel:Manual:Importing XML dumps

Um einen XML Dump in ein Wiki zu importieren, benutzen Sie die Kommandozeile importDump.php . Führen Sie folgendes durch:

php wikifolder/maintenance/importDump.php --dbpass wikidb_userpassword --quiet --wiki wikidb path-to-dumpfile/dumpfile.xml
php wikifolder/maintenance/rebuildrecentchanges.php

Ersetzen sie wikidb_userpassword, wikidb und path-to-dumpfile/dumpfile.xml entsprechend.

Anschließend benutzen Sie ImportImages.php , um images zu importieren:

php wikifolder/maintenance/importImages.php wikifolder_backup/images

Importieren der MediaWiki Files

Als Nächstes stellen sie ihr Backup des MediaWiki Filesystems wieder her: Das ist der letzte "große" Schritt im Wiederherstellungsprozess.

  • Wenn Sie der Anleitung zum Backup gefolgt sind und ein Backup des gesamten Verzeichnisses durchgeführt haben, dann schließt dies die Verzeichnisse images und extensions plus custom skins, etc. und die Konfigurationsdatei ein.
  • Wenn sie nur von Teilen des Verzeichnisses, z.B. images, extensions etc. ein Backup gemacht haben, müssen Sie zunächst ein Upload / eine Neu-Installation der MediaWiki-Files vornehmen und anschließend die Verzeichnisse und Dateien aus dem Backup an die richtigen Positionen im neuen Verzeichnisbaum verschieben.
Löschen und Wiederherstellen des Wiki Filesystems

Denken Sie auch daran, die Filesystemkomponenten des Wiki wiederherzustellen, die benötigt werden z.B. images, Logo und Extensions. Editieren sie die LocalSettings.php, um zu überprüfen, ob alles korrekt eingestellt ist. Eine Sequenz von Linux Befehlen, um das Wiki-Filesystem zu löschen und wiederherzustellen, könnte so aussehen:

wget http://download.wikimedia.org/mediawiki/1.36/mediawiki-1.36.1.tar.gz
tar -xvzf mediawiki-1.36.1.tar.gz
rm mediawiki-1.36.1.tar.gz
rm -fR wikifolder/
mv mediawiki-1.36.1 wikifolder
rm -fR wikifolder/extensions/
cp -R wikifolder_backup/extensions wikifolder/extensions

Öffnen sie das Wiki im Browser und klicken Sie auf den "Set up the wiki first"-Link. Siehe Manual:Config script für Details. Falls nötig können Sie den Kommandozeilen-Installer php wikifolder/maintenance/install.php starten. Wenn das getan ist, editieren Sie LocalSettings.php, um die Neuinstallation, die Zeilen für Extensions, etc anzupassen. Stellen Sie aus dem Backup andere Dateien, wie z.B. das Logo und Favicon in den richtigen Pfaden wieder her.

Wenn Sie nicht als Linux/Unix Root installiert haben und die Bilder und Thumbnails nicht funktionieren, müssen Sie Besitzer oder Berechtigungen an den Ordnern, die die hochgeladenen Bilder beinhalten - normalerweise unter wikifolder/images - "rekursiv" anpassen.

Hinweise

  • Wenn Sie letzterem Prozess folgen, stellen Sie sicher, dass ihre Neuinstallation aus der gleichen Version von MediaWiki besteht wie die alte.
  • Prüfen Sie, ob für das Upload-Verzeichnis (z.B. images in Version 13) 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 oder chmod -R o=rx includes).
  • Die beste Methode, wenn Sie ein Wiki 'händisch' von einer Windows-Plattform auf eine Linux-Plattform übertragen, beinhaltet:
    1. Installieren Sie MediaWiki manuel auf der Linux-Plattform aus einem tar-File wie hier beschrieben:Manual Install of Wiki (d.h. versuchen Sie nicht, das Wiki über eine automatisiertes Package zu installieren)
    2. Ersetzen sie das neu installierten MediaWiki Verzeichnis (z.B. /var/www/mediawiki...) auf ihrer Linux-Maschine mit dem MediaWiki Basis-Verzeichnis auf ihrer Windows-Maschine.
    3. Führen Sie ein Update der MySQL->Database (z.B. wikidb) auf ihrer Linux-Maschine mit der Wiki-Database ihrer Windows-Maschine durch (d.h. benutzen Sie die Backup- und Restore-Features von mysql wie oben beschrieben).
  • Nachdem Sie eine Wiki-Database importiert haben, könne einige kleinere Probleme auftreten, auch wenn die Database funktioniert:
    1. Der Suchindex könnte repariert werden müssen: Geben Sie in phpMyAdmin REPAIR TABLE wikidb.searchindex; ein, um den Suchindex neu aufzubauen. wikidb ist dabei der Name ihrer Database.
    2. Die Sortierung einiger Reihen kann sich geändert haben. Vergleichen Sie das mit der Original-Database.

Überprüfen der Konfigurationsdatei

Die letzte Aufgabe beinhaltet die Überprüfung und möglicherweise die Veränderung der LocalSettings.php -Datei.

  • Wenn Sie den Restore auf den gleichen Server, von dem Sie das Backup gemacht haben, durchführen, werden Sie wahrscheinlich nichts ändern müssen.
  • Wenn Sie den Restore auf einen neuen Server durchführen (d.h. wenn sie das Wiki verschieben oder duplizieren), werden bestimmte Einträge fast zweifellos Änderungen benötigen und Sie werden die Informationen zur Verbindung der Database ebenso ändern müssen.

Prüfen sie die folgenden Konfigurationsoptionen:

Konfigurationsoption notwendige Aktion Voreinstellung/Beispiel
$IP muss für die Pfade auf dem neuen Server korrigiert werden

(Bleibt gewöhnlich gleich, daher keine Änderung notwendig)

Voreinstellung(Default):
 if( defined( 'MW_INSTALL_PATH' ) ) {
 	$IP = MW_INSTALL_PATH;
 } else {
 	$IP = dirname( __FILE__ );
 }
$wgScriptPath muss für die Pfade auf dem neuen Server korrigiert werden

$wgScriptPath = "wikifolder";
Example:
$wgScriptPath = "/w";

$wgArticlePath muss für die Pfade auf dem neuen Server korrigiert werden

Examples:
$wgArticlePath = "$wgScriptPath/$1";
$wgArticlePath = "/wiki/$1";

$wgDBserver Prüfen Sie, ob der Database Server Name korrekt ist

Example:
$wgDBserver = "localhost";

$wgDBname Dies könnte sich in einem geteilte Hosting-Enviroment geändert haben

$wgDBname = "wikidb";

$wgDBuser Das könnte sich in einem geteilten Hosting-Enviroment geändert haben

$wgDBuser = "wikidb_user";

$wgDBpassword Prüfen Sie, ob das für einen neuen User korrekt ist

$wgDBpassword = "wikidb_userpassword";

Es könnte auch nötig sein, dass Sie die Pfade zu diff3, ImageMagick, etc. überprüfen müssen.

Test

Versuchen Sie an diesem Punkt auf das Wiki auf dem neuen Server zuzugreifen und es zu benutzen. Loggen Sie sich als SysOp und als normaler Benutzer ein und prüfen Sie, ob das Betrachten, Erzeugen und Bearbeiten von Seiten und der Upload von Dateien immer noch funktioniert. Sie müssen jedes Problem, das entweder PHP oder MediaWiki selbst meldet, beheben.

häufige Probleme

Nach dem Verschieben (ihres Wikis) könnten PHP-Warnungen auftreten, die darauf hinweisen, dass auf bestimmte Dateien nicht zugegriffen werden kann. Dies wird höchstwahrscheinlich von phabricator:T37472 verursacht: Die Spalte md_deps im module-deps-Table enthält absolute Verzeichnispfade, welche gewöhnlich verwendet werden, um die Images und Less-Files lokalisieren, von denen CS abhängt. Diese Pfadangaben werden fehlerhaft, wenn das Wiki beispielsweise in einen anderen Ordner oder auf einen anderen Server verschoben wird.

Bis dieser Fehler gelöst ist, können Sie diesen Workaround verwenden, um manuell falsche Einträge im module_deps-Table zu beheben.

SET @old='wiki.old-domain.org';
SET @new='wiki.new-domain.org';

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

Dies kann benutzt werden, um falsche Pfadangaben zu korrigieren und den Fehler zu beheben.

Siehe auch

Externe Links

Einzelnachweise