Wikipedia:Technik/Archiv/MediaWiki-Installation (2005–2011)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Diese Seite gehört zum Wikipedia-Archiv.

Diese Anleitung ist veraltet. Eine neuere Version steht auf Wikipedia:Technik/MediaWiki/Private Installation

Das Wikipedialexikon kannst du als eine im Browser offline durchsuchbare Datenbank auf dem eigenen Rechner installieren. Die folgende Anleitung für Windows setzt keine Erfahrung mit Servern, Datenbanken und Befehlszeilenanweisungen voraus. Linux- und MacOS X-Benutzern wird zugetraut, die Installation ohne Dokumentation zu vollziehen (deshalb wurde die alte Fassung dieser Seite gelöscht).

Du benötigst 30 bis 60 Minuten für die Installation der Grundprogramme. Danach werden die Wikipediatexte in die installierte Datenbank eingespielt. Das kann dann etwa fünf bis zehn Stunden dauern – abhängig von der Prozessorleistung, der Festplattengeschwindigkeit, dem freien Speicherplatz und dem Fragmentierungszustand. Der letzte Schritt lässt sich also gut am Abend beginnen. Der Import läuft über Nacht weiter und am nächsten Morgen wirst du beim Marmeladenbrötchen von einer fertigen Offline-Wikipedia zum Stöbern eingeladen.

Übrigens: In der Offline-Version kannst du genauso bearbeiten, neu anlegen, wikifizieren und dies jeweils abspeichern wie online. Erneut per Browser angesteuert, kopierst du bei Gelegenheit den Quelltext in die originale Online-Wikipedia und es haben fortan alle etwas davon. Zwischenzeitliche Veränderungen in den Online-Versionen solltest du allerdings berücksichtigen und nicht einfach drüberbügeln!

Achtung: Wenn es dir nur um das offline Lesen und Stöbern in der Wikipedia geht, findest du wesentlich einfachere Möglichkeiten unter Wikipedia:Download, wie die Wikipedia:DVD oder WikiTaxi. Editieren ist dabei jedoch nicht möglich.

Für Eilige: die Anweisungen schnell & schmutzig

Die gesamten Artikel der Wikipedia werden fertig zum Download in Deutsch, Englisch usw. ca. alle zwei Monate aktualisiert in einer komprimierten "Dump-Datei" zur Verfügung gestellt http://download.wikipedia.org/backup-index.html (dewiki: deutsch; enwiki: englisch). Der jeweilige Dump ist von Zeit zu Zeit in das installierte lokale Datenbank-Programm einzuspielen, wenn du über den aktuellen Online-Text verfügen willst.

Es besteht auch die Möglichkeit, die deutschsprachige Wikipedia offline per DVD zu lesen http://de.wikipedia.org/wiki/Wikipedia:DVD . Flott läuft dies mit einem "gemounteten" Image der DVD auf der Festplatte, z.B. mit Hilfe von DAEMON Tools. Nachteil: Wird nur einmal im Jahr aktualisiert und die umfangreichere, sehr gute englischsprachige Wikipedia bleibt außen vor.

Die Datenbanklösung auf der Festplatte, wie sie hier beschrieben wird, ist bislang die komfortabelste und schnellste, wenn man einmal die Grundprogramme installiert hat.

Voraussetzungen

[Quelltext bearbeiten]

Du benötigst:

  • Ein Entkomprimier-Programm, z.B. 7-Zip, http://www.7-zip.org (Freeware) oder das weitverbreitete WinRAR, http://www.winrar.de (Shareware). Grundsätzlich ist jedes Packprogramm geeignet, das Archive mit den Endungen .tar, .gz und .bz2 öffnen kann, siehe im Zweifelsfall Liste der Datenkompressionsprogramme (Format-Angaben unvollständig) und Liste der Dateiendungen.
  • Xampp für Windows (Installer-Version) von http://www.apachefriends.org/de/xampp-windows.html Die Anleitung auf dieser Seite wurde erfolgreich getestet mit der Version 1.5.1 und 1.5.5.
  • Mediawiki Version 1.6.8 oder älter! Verwende nicht Mediawiki Version 1.7.1 oder neuer. Die neueren Versionen funktionieren für unseren Zweck bislang nicht. Der Datenimport scheitert oder du musst zusätzlich die Fehler wegbasteln. Download erfolgt von http://www.mediawiki.org/wiki/Download .
  • Den Datenbank-Dump der Wikipedia von http://download.wikipedia.org/backup-index.html Beschränke dich für das Lexikon auf den Dump mit den reinen Artikel-Seiten (dewiki-20061130-pages-articles.xml.bz2), ohne History und Diskussion. Hierfür den neuesten "dewiki"-dump aufrufen und dort das "pages-articles.xml.bz2"-Verzeichnis herunterladen. Die gepackte Datei hat eine Größe von etwa 1,1 GB (April 2008) , die entpackte ist ungefähr 3,7 GB groß.
  • Möglichst eine mit NTFS formatierte Festplatte. Wenn du kein Windows NT hast oder aus einem anderen Grund gezwungen bist, die Offline-Wikipedia auf einem FAT-Dateisystem zu installieren, achte darauf, dass keine Datei größer als vier GB sein darf. Wenn du bei der Installation eine solche Fehlermeldung bekommst, kannst du die Wikipedia nicht weiter installieren.

Auf der Partition, auf der der Server installiert werden soll, müssen mindestens 4 GB frei sein. Außerdem brauchst du noch mal irgendwo 3,8 GB, wo du den gepackten Dump ablegst und extrahierst (kann hinterher wieder gelöscht werden).

Xampp“ ist ein vorbereitetes Software-Paket, das den weit verbreiteten Apache-Server in Windows installiert und dann in den Server hinein eine Ausführungskonsole für die Programmiersprache PHP sowie die Datenbank MySQL und dafür eine grafische Benutzeroberfläche namens phpMyAdmin, zur besseren Steuerung von MySQL. Nach Xampp installierst du in dieser Anleitung das Frontend für die Wikipedia namens Mediawiki. Ein Frontend ist ein Programm, das das Design der Seiten, die du im Browser siehst, bestimmt. Die im Hintergrund laufende Datenbank siehst du nicht. Sie soll nur Rohdaten auswerfen. Mediawiki sorgt dafür, dass diese auch ordentlich per Stichwort abgefragt und im Browser gelesen werden können. Xampp ist sehr nützlich, weil es die Programme, die sonst einzeln installiert werden müssten, ohne dein Zutun fertig einrichtet. Mediawiki und Xampp aufeinander abzustimmen, ist bisher noch Handarbeit und dauert 20 min.

Ein Server ist im Normalfall ein Programm, das für andere Computer über das Internet Daten zur Verfügung stellt; z. B. die Wikipedia. Du installierst für deine Zwecke einen lokalen Server nur für den eigenen Browser, weil die Datenbank-Software der Wikipedia in PHP geschrieben ist. Programme, die in dieser Programmiersprache geschrieben sind, laufen nur auf einem Server. Die hausgemachte Wikipedia übernimmt das sogenannte Client-Server-Prinzip. Im Unterschied zu Servern à la Google bearbeitet dein eigener Server immer nur eine Anfrage gleichzeitig, deshalb brauchst du keine High-End-Hardware.

Xampp installieren und absichern

[Quelltext bearbeiten]

Starte den Xampp-Installer und gib als Zielverzeichnis beispielsweise C:\Programme an. Wenn du auf einer anderen Partition mehr Platz hast, installiere dorthin, D:\X\, etc. Im gewählten Verzeichnis muss hinterher die gesamte Datenbank Platz finden! Achte im Folgenden darauf, dass du die hier genannten Beispielpfade immer entsprechend deiner tatsächlichen Pfadwahl anpasst.

Während der Installation wird gefragt, ob die Programme auch als Dienst (englisch: Service) installiert werden sollen. Dies meint eine Art, wie in Windows hinein installiert wird. Beantworte diese Fragen für den Apache-HTTP-Server und MySQL mit Ja. Der Mailserver und der FileZilla-FTP-Server werden nicht benötigt.

Zum Thema Sicherheit: Eine gute Anleitung, um einen Rechner allgemein sicher zu konfigurieren, findet sich auf der Seite http://www.ntsvcfg.de/ . Vertraue nicht einfach einer Personal Firewall, welche vielleicht in Windows installiert ist.

Daneben sollte Xampp eingestellt werden. Für die Sicherheit des Windows-Rechners selbst sind die Servereinstellungen völlig uninteressant, solange nicht der FTP- und Mailserver installiert ist. Es geht lediglich darum, dass jemand in der Xampp-Grundeinstellung (also nicht nach unserer Installation) ohne gesetztes Passwort von außen die Datenbank auf dem Server ansteuern, löschen oder dich aussperren könnte. Die Betonung liegt auf könnte. Das Ganze ist mehr theoretischer Natur, solange du keine fest zugewiesene IP-Adresse hast. Trotzdem: Mit dieser Anleitung richtest du diese wichtigste Sicherung weiter unten beschrieben als Passwortabfrage ein. Zum Schluss – nach Abschluss der Installation – kannst du die Xampp-Sicherheits-Testseite http://localhost/security/ im eigenen Server besuchen. Dort lässt sich ein weiteres Passwort für den Xampp-Verzeichnis-Schutz eintragen. Dabei nicht versehentlich erneut für die MySQL-Sektion ein Passwort setzen, das tust du bereits in dieser Anleitung weiter unten!

Den Suchpfad in Windows erweitern

[Quelltext bearbeiten]

Der globale Suchpfad ist eine Sammlung von Verzeichnissen, in denen Windows nach jedem Befehl, ein Programm zu starten, sucht. Ohne Erweiterung der PATH-Variablen können während der weiteren Installation PHP-Skripte in der Eingabeaufforderung nicht aus allen Verzeichnissen aufgerufen werden.

Unter Windows NT kann der Pfad unter Systemsteuerung → System → Erweitert → Umgebungsvariablen… → Systemvariablen → path eingestellt werden. Die Verzeichnisse sind in dieser Variablen durch Semikola voneinander getrennt. Trage hier einfach C:\Programme\xampp\php an irgendeiner Stelle ein.

Unter Windows 9x und ME musst du die Datei autostart.bat im Stammverzeichnis deiner Systempartition um die Zeile

set path=%path%;C:\Programme\xampp\php

erweitern und anschließend dieses Skript ausführen. Ein Warmstart hat den gleichen Effekt.

Shell anzeigen, Pfad überprüfen

[Quelltext bearbeiten]

Über die Windows-Shell kannst du Befehle direkt ausführen lassen. In Windows NT heißt die Shell cmd.exe und liegt im Windowsverzeichnis unter system32 – also zum Beispiel in C:\WINNT\system32\ oder in C:\WINDOWS\system32\ Ältere Windowsversionen basieren auf COMMAND.COM, die an verschiedenen Stellen liegen kann; etwa unter C:\, C:\WINDOWS\ oder C:\WINDOWS\COMMAND\.

Auf dem Desktop lässt sie sich über → Start → Programme → Zubehör → Eingabeaufforderung starten.

Diese Shell brauchst du jetzt mehrmals. Lege dir also gleich eine Verknüpfung zum Beispiel auf dem Desktop an.

Wenn du in der Shell

path

eingibst, erscheint der Suchpfad auf dem Bildschirm, der jetzt auch das vorhin angehängte Verzeichnis enthalten sollte.

max_allowed_packet in MySQL vergrößern

[Quelltext bearbeiten]

Lade die Datei

C:\Programme\xampp\mysql\bin\my.ini

in einen Texteditor. Windows kennt die Endung ini. Wie bei Windows üblich, werden bekannte Dateinamen-Endungen häufig ausgeblendet. Deshalb erscheint im Windows-Explorer normalerweise nur der Namensteil my und darüber ein Symbol mit einem Textblock und einem Zahnrad.

Suche diese Zeilen:

[mysqldump]
quick
max_allowed_packet=1M

und ändere die letzte auf:

max_allowed_packet=16M

Es könnte sein, dass die Einstellung bereits vorhanden ist. In dieser Datei dann bei

[mysqld]
…
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4

den Wert ebenfalls von 1M auf 16M ändern.

Grundsätzlich: Sollte der Inhalt der Datei my.cnf bei dir noch anders organisiert sein, als hier beschrieben, dann suche die gesamte Datei nach der Kenngröße max_allowed_packet ab (mehrfach vorhanden) und ändere überall den Wert von 1M auf 16M. Speichere manuell ab, schließe nicht versehentlich einfach den Editor.

! MySQL und Apache müssen nun gestoppt und neu gestartet werden, sonst wird der neue Wert für max_allowed_packet im System nicht angemeldet. Bediene den Server über das Xampp-Control-Panel oder starte alternativ den Computer neu.

Server aufrufen, MySQL ein Passwort zuordnen

[Quelltext bearbeiten]

Rufe http://localhost/ im Browser auf. Xampp müsste dich jetzt begrüßen und dir anbieten, eine Sprache zu wählen. Klicke auf Deutsch.

Klicke im erscheinenden Menü links auf phpMyAdmin (weit unten unter „Tools“). Es öffnet sich die phpMyAdmin-Hauptseite. Dort als erstes etwa in der Mitte den Unterpunkt „Rechte“ aufrufen. Beachte auf der sich öffnenden Seite ziemlich in der Mitte die Zeile für den Benutzer root, die etwa
„root | localhost | ja | ALL PRIVILEGES | ja | Bild mit Männchen mit Stift“
lautet und klicke auf das Männchen mit Stift (Wichtig ist, dass unter "Host" localhost eingetragen ist!)

Auf der sich öffnenden Seite nach unten scrollen und im Feld Kennwort ändern eines eintragen; als Beispiel für diese Anleitung moses. Der OK-Button befindet sich direkt unter dem Kennwort-Feld. Lasse sonst alles so, wie es ist.

Künftig kann sich root (das ist der Default-User in Xampp) nur noch zusammen mit dem Passwort moses an der Datenbank MySQL anmelden. Das bemerkst du sofort, wenn du auf die phpMyAdmin-Hauptseite zurückgehst (das Häuschen im Menü links anklicken). Du siehst nichts außer einer Fehlerseite, die darauf hinweist, dass MySQL dich nicht mehr hereinlässt, und damit ist auch kein Zugriff auf die phpMyAdmin-Startseite möglich.

phpMyAdmin ist nicht MySQL, sondern nur eine grafische Oberfläche, um MySQL zu konfigurieren. Die Oberfläche merkt sich das Passwort nicht automatisch. Deshalb musst du jetzt noch von Hand die Konfigurationsdatei für phpMyAdmin editieren.

MySQL ist das wichtige Programm, das unsichtbar im Hintergrund als Datenbank-Software für die Wikipedia fungiert und in eine noch zu erstellende Datenbank die Text-Rohdaten des Dumps aufnimmt. Diese Datenbank wird später von Mediawiki eingerichtet (automatisch bei der Installation), mit genau den entsprechenden Parametern, die die Wikipedia-Rohdaten brauchen. Mediawiki verlangt dabei jedoch zwingend die Angabe eines Benutzers mit zugeordnetem Passwort. Diesen Benutzer mit Passwort hast du soeben erstellt. Indem du "root" (als den in Xampp voreingestellten Benutzer, der sowieso alle Rechte hat) wählst, schaffst du zugleich Sicherheit auch nach außen in Richtung Internet.

phpMyAdmin das Passwort mitteilen

[Quelltext bearbeiten]

Öffne

C:\Programme\xampp\phpMyAdmin\config.inc.php

mit einem Texteditor und suche die Zeilen:

$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = ' '; // MySQL password (only needed with 'config' auth_type)

Hier gibst du in der letzten Zeile das Passwort moses ein.

In der Xampp-Grundeinstellung waren phpMyAdmin und MySQL offen zugänglich. Dann hast du ein Passwort für MySQL gesetzt und dieses nun phpMyAdmin bekannt gemacht. Falls du auch nur kurzzeitig am Netz hängst, solltest du in der Zeile

 $cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?

config durch http ersetzen. Als Sicherheitseinstellung wird ab sofort der ansprechende Browser, egal ob der eigene oder über das Internet einer in Honolulu, gezwungen, zuerst die Anmeldedaten per Dialogfenster abzufragen, und sie an den Server (d. h. phpMyAdmin und MySQL) zurückzusenden. Wenn du in dem Betriebssystem, in dem du den Server installiert hast, sowieso keinen Zugang zum Internet hast, ist diese Einstellung unnötig und lästig.

Mediawiki installieren

[Quelltext bearbeiten]

Installiere das Pack/Entpack-Programm 7-Zip für Windows (oder ein anderes geeignetes deiner Wahl). 7-Zip bindet sich in das Explorer-Kontextmenü ein. Wenn du auf die zu entpackende Datei mit der rechten Maustaste klickst, siehst du einen Eintrag 7-zip und dann Entpacken, Hier entpacken usw.

Entpacke mit 7-Zip die heruntergeladene Datei mediawiki-1.6.8.tar.gz und dann den Inhalt des entstehenden Verzeichnisses. Es entsteht ein Verzeichnis namens mediawiki-1.6.8. Verschiebe dieses Verzeichnis nach

 C:\Programme\xampp\htdocs\ 

und benenne es in dewiki um. Achte darauf, dass in C:\Programme\xampp\htdocs\dewiki\ nicht noch ein Verzeichnis mediawiki-1.6.8 liegt, sondern zahlreiche Verzeichnisse und endungslose Dateien.

Mediawiki einrichten

[Quelltext bearbeiten]

Leere den Browsercache und rufe die Seite http://localhost/dewiki/ auf. Dort sollte eine Blume zu sehen sein. Klicke den Link zur Konfigurations-Seite an:

  • Website-Name: z.B. „DeWikipedia“
  • Sprache der Dialoge/Skin: Deutsch
  • Lizenz: Creative Commons Attribution/Share-Alike Lizenz 3.0
  • Für den Sysop irgendwelche Anmelde-Daten angeben (das ist in öffentlichen Wikis der Administrator; für unsere Zwecke unwichtig)
  • No Caching
  • Email: Alles auf disabled setzen
  • MySQL-Server: localhost
  • Datenbank-Name: dewiki
  • Benutzername und Passwort: root/moses
  • Datatable prefix: leer lassen
  • Database charset: Binary
  • Unten Install drücken.

Mediawiki konfiguriert sich nun und erstellt in MySQL eine leere Datenbank mit den richtigen Spezifikationen für die Wikipedia und die Textdaten, die du gleich importieren kannst. Bei der Konfiguration verändert Mediawiki die künftigen Anweisungen für sich selbst über die Datei LocalSettings.php. Nach der Konfiguration musst du die Datei LocalSettings.php per Hand von

C:\Programme\xampp\htdocs\dewiki\config

nach

C:\Programme\xampp\htdocs\dewiki

verschieben. In C:\Programme\xampp\htdocs\dewiki\config darf die Datei anschließend nicht mehr liegen.

Hast du einmal erfolgreich konfiguriert, dann ist in Zukunft an der Adresse http://localhost/dewiki/ nicht mehr die Aufforderung mit dem Link zur Konfigurationsseite zu sehen, sondern die Mediawiki-Hauptseite. Du kannst nur einmal erfolgreich konfigurieren. Dann schaltet Mediawiki als Sicherheitsfeature um. Solange die Konfiguration nicht erfolgreich verlaufen ist, wirst du immer wieder auf die Konfigurationsseite zurückgeführt.

"Wikipedia"-Namensraum

[Quelltext bearbeiten]

Ein Sonderfall lässt sich an dieser Stelle behandeln: Wer beim Import der dewiki-Datenbank auch die Seiten des "Wikipedia"-Namensraum (z.B. Wikipedia:Löschkandidaten, aber auch "interessantere" Sachen wie Wikipedia:Exzellente Artikel) laden möchte, muss einen Eintrag in der lokalen Mediawiki-Tabelle "interwiki" löschen.

Nach der Einrichtung von Mediawiki, im vorangehenden Arbeitsschritt, wurde auch eine Tabelle mit Interwiki-Links angelegt. In der Wikipedia enthält diese Tabelle hauptsächlich die Verweise auf die anderen Sprachversionen der Wikipedia (en: fr: undsoweiter). In der Mediawiki-Installation werden dagegen nur Verweise auf andere Mediawikis im Internet eingetragen. Darunter ist auch ein Eintrag auf die englischsprachige Wikipedia: ('wikipedia', 'http://en.wikipedia.org/wiki/$1', 1),

Immer dann, wenn ein Artikel mit "Wikipedia:" beginnt, ist Mediawiki der Meinung, es handelt sich um einen Artikel in der englischsprachigen Wikipedia - und lehnt den Import (späterer Arbeitsschritt unter #Import der Textdaten/Fertigstellung) des entsprechenden Artikels ab, alle anderen Artikel werden importiert.

Abhilfe - wenn wirklich auch die Artikel des Wikipedia-Namensraums importiert werden sollen - schafft das manuelle Löschen der oben dargestellten Zeile aus der Datenbank.

Am einfachsten geht das mit phpmyadmin:

  • http://localhost/phpmyadmin/ im Browser aufrufen
  • (links im Menü) Datenbank dewiki auswählen
  • (links im Menü) Tabelle interwiki auswählen
  • (im Hauptfenster oben) "Anzeigen" auswählen
  • es sollten unter 100 Datensätze sein, also durchsehen und in der Zeile mit "wikipedia" (in genau dieser Schreibweise, alles klein) das rote X für Löschen anklicken und die Abfrage bestätigen.

(Warum wird "wikipedia" gelöscht, um "Wikipedia:" zu importieren? - Die Mediawiki-Software ändert automatisch den ersten Buchstaben in einen Großbuchstaben um. Der Tabelleneintrag "wikipedia" wird intern mit "Wikipedia" gleichgesetzt. Ein Tabelleneintrag "wikiPedia" wäre nicht betroffen.)

(Eine Versionsangabe wäre sinnvoll: Getestet unter Windows Vista: MediaWiki 1.13.0 / PHP 5.2.2 (apache2handler) / MySQL 5.0.41-community-n und openSUSE 11.0: MediaWiki 1.13.0 / PHP 5.2.2 (apache2handler) / MySQL 5.0.41-community-nt)

Datenbank sichern

[Quelltext bearbeiten]

Wenn der Dump fehlschlägt oder wenn du ein paar Monate später einen aktuellen Dump einspielen willst, ist es gut, wenn du jetzt die noch fast leere Datenbank zwischenspeicherst. Wenn du das nicht tust, kann die Datenbank nur immer größer werden, weil du von einigen Artikeln mehrere Versionen auf der Festplatte hast, die sich vielleicht gar nicht voneinander unterscheiden. Ein Skript, um die Datenbank vorher zu leeren, existiert derzeit leider nicht. Du kopierst also jetzt die noch fast leere Datenbank, die sich im Verzeichnis

C:\Programme\xampp\mysql\data\dewiki

befindet. Kopiere dieses Verzeichnis dewiki irgendwo hin. Wenn du später die leere Datenbank wieder holen möchtest, fährst du zuerst den MySQL-Dienst herunter – wenn du nicht weißt, wie, dann boote Windows einfach im Abgesicherten Modus –, lösche C:\Programme\xampp\mysql\data\dewiki und setze dafür das zwischengeparkte Verzeichnis dewiki ein.

AdminSettings.php konfigurieren Kopiere im Verzeichnis

C:\Programme\xampp\htdocs\dewiki

die Datei AdminSettings.sample und benenne die Kopie in AdminSettings.php um. Auf der Kommandozeile geht das mit:

c:
cd \Programme\xampp\htdocs\dewiki
copy AdminSettings.sample AdminSettings.php

Öffne die Datei AdminSettings.php wie gewohnt mit einem Editor. Suche nach wikiadmin und ersetze die Zeichenkette durch root. Kurz dahinter steht adminpass. Ersetze dieses Wort durch dein Passwort, das in dieser Anleitung mit moses angenommen wird.

Das Skript AdminSettings.php wird verwendet, um PHP-Skripte aus dem Verzeichnis C:\Programme\xampp\htdocs\dewiki\maintenance in MySQL anzumelden und sichert deren korrekte Ausführung. Auch die Notwendigkeit, path zu erweitern, bezieht sich übrigens auf diese Skripte.

Dump für den Import vorbereiten

[Quelltext bearbeiten]

Entpacke die komprimierte Dump-Datei zu einer XML-Datei – also zum Beispiel dewiki-20070427-pages-articles.xml. Achte darauf, wohin du die Datei entpackst. Du brauchst nachher für den Import gute 2,6 GB freie Festplattenkapazität unter C:\Programme\xampp\mysql\data\dewiki.

Die entpackte Dump-Datei ist ebenfalls 3,1 GB groß. Um den Import zu beschleunigen, kann es nie schaden, möglichst viel freien Speicherplatz zu haben, weil sonst die Datenbank eventuell auf dem Dateisystem sehr fragmentiert ist. Also wenn du noch eine andere Partition hast, entpacke den Dump lieber dort hin.

Import der Textdaten/Fertigstellung

[Quelltext bearbeiten]

Vor diesem Schritt muss sichergestellt sein, dass der MySQL-Server nach Änderung seiner Konfigurationsdatei neu gestartet worden ist. Sonst wird der geänderte max_allowed_packet Wert nicht berücksichtigt, und der Prozess bricht mit einer Fehlermeldung ab (u.U. erst nach Stunden, aber es geschieht). Ein Neustart von Windows startet auch den MySQL-Server neu. Hast du dies bereits direkt nach der Änderung des Wertes in my.cnf erledigt, musst du es jetzt nicht erneut tun.

Öffne die Shell und gib die folgenden Befehle ein:

c:
cd C:\Programme\xampp\htdocs\dewiki\maintenance

Dieses Verzeichnis ist jetzt das aktive Verzeichnis. Schließe nun alle möglichen Programme und gehe sicher, dass du den Rechner viele Stunden lang nicht brauchst. Wenn du alte Hardware hast, kann es sein, dass der Import einen ganzen Tag braucht. Auf modernen Rechnern sollte der Prozess spätestens nach zehn Stunden abgeschlossen sein. Um den Import zu starten, gib diesen Befehl ein:

php importDump.php < "C:\dewiki-20060803-pages-articles.xml"

Es wird hier davon ausgegangen, dass die XML-Datei im Stammverzeichnis von C: liegt. Wenn du sie irgendwo anders hin gelegt hast, musst du die Verzeichnisangabe vervollständigen.

Der Rechner arbeitet nun das Programmskript importDump.php ab und gibt währenddessen an der Eingabeaufforderung Zeilen in 100er-Zählschritten nach folgendem Muster aus:

722900 <58.6748937264 pages/sec 58.896826549 revs/sec>

Ab und an erscheint vielleicht Got bogus revision with null title. Beachte das nicht weiter. Wenn der Import funktioniert hat, verabschiedet sich das Skript mit Done. Das Skript sollte bis dahin wenigstens 20 Seiten pro Sekunde abarbeiten. In diesem Beispiel sind es 58,7. Wenn der Prozess sehr langsam fortschreitet – also vielleicht nur 5 Seiten sekündlich eingetragen werden –, kannst du das Skript mit Strg+C abbrechen. Es würde unerträglich lange dauern, es durchlaufen zu lassen. Wahrscheinlich ist die Partition, auf der die Datenbank liegt, oder die, auf der der Dump liegt, fragmentiert. Überprüfe und korrigiere das mit einem Defragmentierungsprogramm. Vor dem nächsten Versuch setze wieder die alte, leere Datenbank ein. Auch die Mediawiki-Versionen 1.7.1 bis 1.9.0 - evtl. neuere - scheitern bislang an diesem Punkt! Mit dem implementierten Skript werden lediglich ca. 2 Seiten/Sekunde verarbeitet. Es gilt deshalb die Empfehlung, Mediawiki 1.6.8 oder älter zu verwenden.

Sollte nach der Defragmentierung und der Wahl der richtigen Mediawiki-Version die Importgeschwindigkeit weiterhin sehr niedrig sein, gibt es eine alternative Variante: Der Dump wird dabei nicht mit importDump.php eingespielt, sondern erst in einen SQL-Dump umgewandelt. Dieser lässt sich dann schneller in die Datenbank importieren.

Lade zuerst das Tool mwdumper.jar von http://download.wikimedia.org/tools/ herunter und kopiere es z.B. nach C:. Stelle sicher, dass die JRE mindestens in der Version 1.4 oder 1.5 installiert ist. Du musst nun die leere Datenbank wieder einsetzen. Wandle den Dump dann in der Shell mit

c:
cd\
java -jar mwdumper.jar --output=file:dewiki-20060803-pages-articles.sql --format=sql:1.5 --progress=10000 dewiki-20060803-pages-articles.xml

um. Der Fortschritt wird in 10.000er Schritten angezeigt. Um Speicherplatz freizugeben, kannst Du den XML-Dump jetzt löschen. Anschließend kann der SQL-Dump mittels

cd \Programme\xampp\mysql\bin
mysql -u root -pmoses
use dewiki
source C:\dewiki-20060803-pages-articles.sql

eingespielt werden.

Selbst jetzt wird diese Prozedur noch einige Stunden dauern, der Fortschritt wird etwa in dieser Form

Query OK, 255 rows affected (0.91 sec)
Records: 255  Duplicates: 0  Warnings: 0
 
Query OK, 1000 rows affected (8.16 sec)
Records: 1000  Duplicates: 0  Warnings: 0

angezeigt. Möchtest Du wissen, wie weit der Vorgang bisher fortgeschritten ist, vergleiche die Dateigröße des SQL-Dumps mit der Größe des Verzeichnisses C:\Programme\xampp\mysql\data\dewiki. Beachte jedoch, dass jegliche Hintergrundaktivität den Rechner etwas ausbremst.

In der Regel wird das Einspielen am Ende länger dauern als am Anfang. Außerdem kann es zu Fehlermeldungen wie

ERROR 1062 (23000): Duplicate entry '8-Nouserspecified' for key 2

kommen. Ignoriere sie, der Import wird automatisch fortgesetzt. Sobald die Shell mysql>  wieder erscheint, ist der Vorgang abgeschlossen.

Nach erfolgreichem Import kannst Du jetzt, falls noch nicht getan, den XML-Dump und gegebenenfalls den SQL-Dump löschen, weil alle Artikel in die Datenbank eingetragen wurden. Wenn du den Browsercache leerst, findest du unter http://localhost/dewiki/ eine fertige Wikipedia. Suchbegriff eingeben und in der Wikipedia schlau(er) lesen.

Fehlerkorrektur

[Quelltext bearbeiten]

Es kann zu einem Fehler beim Import kommen. Für das Problem, dass importDump.php mit der Fehlermeldung

WikiRevision given a null title in import.
Backtrace:
#0 C:\Programme\xampp\htdocs\dewiki\includes\SpecialImport.php(619): WikiRevision->setTitle(NULL)
#1 …

abbricht, gibt es verschiedene Lösungsansätze. Probiere aus, welcher der hier vorgeschlagenen Wege zum Erfolg führt. Denke daran, vor dem zweiten und jedem weiteren Versuch wieder die leere Datenbank aufzuspielen.

DefaultSettings.php

[Quelltext bearbeiten]

Ersetze in der Datei C:\Programme\xampp\htdocs\dewiki\includes\DefaultSettings.php die Zeile:

$wgLegalTitleChars = " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF";

durch:

$wgLegalTitleChars = " +%!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF";

Alte Versionen

[Quelltext bearbeiten]

Lade die Mediawiki-Version 1.6.8 herunter und ersetze die betroffenen Dateien importDump.php, SpecialImport.php und commandLine.inc im installierten neueren Mediawiki durch die alten Dateien aus dem Mediawiki 1.6.8.

SpecialImport.php

[Quelltext bearbeiten]

Die Zeile 241 oder 619 der Datei C:\Programme\xampp\htdocs\dewiki\Includes\SpecialImport.php lautet:

throw new MWException( "WikiRevision given a null title in import." );

Ersetze die ganze Zeile durch:

$this->title = null;

Volltext-Indizierung einrichten

[Quelltext bearbeiten]

In der Regel benötigst du keinen Textindex, um Artikel in der Wikipedia zu finden. Entsprechen die Titel der Artikel nicht dem genauen Suchbegriff, gibt es häufig Redirect-Seiten. Du kannst auch im Kategorienverzeichnis oder in thematisch verwandten Artikeln nach querverweisenden Links suchen.

Im Einzelfall jedoch können Einträge, die in der Datenbank zwar vorhanden sind, deren Titel aber unterschiedlich zum eingegebenen Suchwort verfasst worden sind, nicht gefunden werden. Abhilfe schafft die Einrichtung eines Volltextindex, so dass Teil-Übereinstimmungen in Titeln und einzelne Begriffe im Volltext identifiziert werden. Das Anlegen eines solchen Index benötigt noch einmal über drei GB zusätzlichen Speicherplatz. Die Abarbeitung des entsprechenden Befehls dauert bei der deutschsprachigen Wikipedia mehrere Tage und hängt überwiegend von der Schreibgeschwindigkeit auf die Festplatte ab.

Ändere dazu zuerst die Einstellungen in AdminSettings.sample wie folgt: wikiadmin -> Login des SQL Servers (i.d.R. root) und adminpass -> Passwort des SQL Servers

Benenne danach diese Datei in AdminSettings.php um. Öffne dann die Eingabeaufforderung und gib dies ein:

c:
cd \Programme\xampp\htdocs\dewiki\maintenance
php rebuildtextindex.php

Das Skript löscht einen bislang nicht vorhandenen alten Index, erstellt die Index-Felder neu und trägt danach ein. Der Fortschritt wird in 500er-Schritten (wovon auch immer) angezeigt, danach einfach Rebuilding index... Zum Schluss kommt die Meldung Done.

[Quelltext bearbeiten]

In der Wikipedia wird auf andere Sprachversionen eines Artikels verwiesen, indem am Ende des Artikels entsprechende Links aufgeführt werden, z.B. Im Artikel Deutschland steht am Ende [[en:Germany]]. Dadurch weiss die Mediawiki-Software der Wikipedia, dass es sich um den Artikel "Germany" in der englischsprachigen Wikipedia (en:) handelt.

In einer lokalen Mediawiki-Installation sind die Interwiki-Links der Wikipedia standardmässig nicht eingetragen. Eine entsprechende Datei mit den Einträgen ist jedoch im Verzeichnis maintenance vorhanden. Sie heisst: wikipedia-interwiki.sql. Mit jedem neuen Dump wird auch die jeweilige interwiki-Tabelle neu erstellt. Sie findet sich auf der Dump-Seite jeweils relativ weit unten: "interwiki.sql.gz" (und muss nach dem Herunterladen entpackt werden).

Diese sql-Datei lässt sich am einfachsten mit dem Kommandozeilen-Programm mysql direkt in die Datenbank einlesen.

Für die hier beschriebene Beispiel-Installation sind folgende Schritte in der Windows-Eingabeaufforderung notwendig:

Öffne die Shell und gib die folgenden Befehle ein:

c:
cd C:\Programme\xampp\mysql\bin
mysql -u root -p moses

Dabei ist -u der Datenbank-Benutzer und -p sein Passwort.

Hier öffnet sich die Shell des mysql-Programms. Als Prompt steht jeweils "mysql>"; die drei Eingaben sind fett hervorgehoben:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 268
Server version: 5.0.41-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use dewiki
Database changed
mysql> \. D:/xampp/htdocs/dewiki/maintenance/wikipedia-interwiki.sql
Query OK, 345 rows affected (0.01 sec)
Records: 279  Duplicates: 66  Warnings: 0

mysql> exit
Bye

C:\Programme\xampp\mysql\bin>

Die letzte Zeile ist bereits wieder der Prompt der Windows-Shell-Eingabeaufforderung. Im Beispiel wurden insgesamt 345 Tabellenzeilen bearbeitet, davon 279 neue Einträge und 66 bereits vorhandene Einträge ("Duplicates") durch die entsprechenden Einträge aus der SQL-Datei ersetzt. (Die SQL-Datei enthält ein REPLACE-Statement[1] anstelle des "normalen" INSERT.)

(Versionsangaben: Getestet unter Windows Vista: MediaWiki 1.13.0 / PHP 5.2.2 (apache2handler) / MySQL 5.0.41-community-n)


Mehrere Wikipedien parallel

[Quelltext bearbeiten]

Willst du zusätzlich zum Beispiel die englischsprachige Wikipedia oder auch ein Wiktionary installieren, lädst du die entsprechende Dump-Datei aus http://download.wikipedia.org und wiederholst die Schritte Mediawiki installieren bis Volltext-Indizierung einrichten, nennst das Verzeichnis dabei aber etwa enwiki statt dewiki und passt die weiteren Eingaben an. Du installierst also je eine Mediawiki-Instanz (pro Instanz gute zehn MB) für jedes weitere Wiki. Die einzuspielenden Datenbankinhalte selbst legen sich allesamt unter C:\Programme\xampp\mysql\data ab. Für die korrekte Anbindung zum Frontend sorgt der Import per importDump.php aus dem korrekten maintenance-Verzeichnis.

Deinstallation

[Quelltext bearbeiten]

Du deinstallierst, indem du zunächst das Verzeichnis dewiki und eventuell die Verzeichnisse anderer Wikis per Hand aus dem Verzeichnis

C:\Programme\xampp\htdocs\

löschst und danach über Start → Programme → apachefriends → xampp → xampp-uninstall die Deinstallationsroutine startest, die die Jungs und Mädels von Xampp netterweise beigefügt haben.


Die Anweisungen schludrig zusammengefasst

Einzelnachweise

[Quelltext bearbeiten]
  1. Beschreibung von REPLACE für MySQL 5.1