MediaWiki Ergänzungen: Unterschied zwischen den Versionen

Aus CyberWiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 12: Zeile 12:
gesetzt werden. Der ursprüngliche Inhalt kann mit # auskommentiert werden.
gesetzt werden. Der ursprüngliche Inhalt kann mit # auskommentiert werden.


===Problem bei der ersten Anmeldung===
Tritt der Fehler "Es gab ein Problem bei der Übertragung deiner Benutzerdaten. Diese Aktion wurde daher sicherheitshalber abgebrochen, um eine falsche Zuordnung deiner Änderungen zu einem anderen Benutzer zu verhindern. Bitte gehe zurück zur vorherigen Seite, lade sie erneut und versuche, den Vorgang erneut auszuführen." bei der ersten Anmeldung auf, muss folgendes in die LocalSettings.php eingetragen werden (am Ende):
$wgSessionCacheType = CACHE_DB;


Die folgenden Schritte gehen davon aus, dass ein leeres WIKI am Zielserver installiert ist.
Die folgenden Schritte gehen davon aus, dass ein leeres WIKI am Zielserver installiert ist.

Version vom 20. Mai 2017, 21:08 Uhr

https://sharkysoft.com/wiki/how_to_move_a_MediaWiki_wiki_from_one_server_to_another
https://www.mediawiki.org/wiki/Manual:Moving_a_wiki

WIKI-Installation Diskstation

Die Installationsumgebung auf der Diskstation befindet sich auf

/volume1/web/MediaWiki/LocalSettings.php
/volume1/web/MediaWiki/images

WIKI aus dem Internet aufrufen (externer Zugriff)

Für den externen Zugriff muss die Variable $wgServer auf

$wgServer = "http://xxxxx.xxxxx.net";

gesetzt werden. Der ursprüngliche Inhalt kann mit # auskommentiert werden.

Problem bei der ersten Anmeldung

Tritt der Fehler "Es gab ein Problem bei der Übertragung deiner Benutzerdaten. Diese Aktion wurde daher sicherheitshalber abgebrochen, um eine falsche Zuordnung deiner Änderungen zu einem anderen Benutzer zu verhindern. Bitte gehe zurück zur vorherigen Seite, lade sie erneut und versuche, den Vorgang erneut auszuführen." bei der ersten Anmeldung auf, muss folgendes in die LocalSettings.php eingetragen werden (am Ende):

$wgSessionCacheType = CACHE_DB;

Die folgenden Schritte gehen davon aus, dass ein leeres WIKI am Zielserver installiert ist.

Backup der Datenbank

Zuerst wird die Datenbank mit den Seiteninhalten gesichert. Folgende Parameter aus der LocalSettings.php werden dabei benötigt:

your wiki's database name $wgDBname wikidb
your wiki's database username $wgDBuser wikiuser
your wiki's database password $wgDBpassword wikipassword
mysqldump -uwikiuser -pwikipassword wikidb -c > wikidb.sql

-c entspricht --complete-insert (includes column names)

Bei Auftreten des Fehlers "mysqldump: Got error: 1044: Access denied for user 'wikiuser'@'localhost' to database 'wikidb' when using LOCK TABLES":

mysqldump -uwikiuser -pwikipassword wikidb -c --skip-lock-tables > wikidb.sql

Das Ergebnis kann man komprimieren mit:

gzip wikidb.sql

und man erhält als Output die Datei wikidb.sql.gz, die am besten auf ein externes Laufwerk (USB-Stick) kopiert wird.

Backup der media files

Mediawiki speichert Bilder nicht in der Datenbank, sondern in einem Ordner des Filesystems namens images. Das funktioniert nur als root.

sudo tar -czvf images.tgz /var/www/mediawiki/images/

oder

sudo su
cd /var/www/mediawiki
tar -czvf images.tgz images/

c=neues Archiv, z=Archiv mit gzip (de)komprimieren, v=ausführliche Ausgabe, f=Archiv in file schreiben
Die Datei images.tgz wird auf das externe Laufwerk kopiert. Auch auf das Logo

/var/www/mediawiki/resources/assets/wiki.png

soll nicht vergessen werden.

Importieren der Datenbank am Zielserver

Nun wechsel man auf den neuen Server. Dort werden die Dateien vom externen Laufwerk ins User-Verzeichnis kopiert. Danach erfolgt der Import in die Datenbank.

gunzip -c wikidb.sql.gz | sudo mysql -C -p wikidb

-C=compress all information sent betweeen client and server, -p=password -> prompt
Ziel-"wikidb" ist der Name der Datenbank auf dem Zielserver (siehe LocalSettings.php). Man kann die beiden Befehle natürlich auch getrennt ausführen.

Importieren der media files am Zielserver

Mit dem Datenbankimport haben wir die Seiten ins neue Wiki importiert. Nun fehlt noch der Restore der Bilder. Zuerst wird images.tgz in den Userordner kopiert und wird dort entpackt. Keinesfalls darf das Archiv unter Windows entpackt werden, weil danach der Zeichensatz nicht mehr stimmt!

tar -xzvf images.tgz

x=Dateien aus einem Archiv extrahieren Falls man viele Bilder hat, kann man auf die "v"-Option beim tar-command verzichten.

Anschließend wird der Originalordner images gelöscht

sudo rm -r /var/www/mediawiki/images

Nun wird der images-Ordner aus dem Userverzeichnis nach /var/www/mediawiki/ kopiert.

cd /var/www/mediawiki/ (im Userverzeichnis!)
sudo cp -R images /var/www/mediawiki/

Zuletzt muss mit großer Wahrscheinlichkeit noch der Owner angepasst werden:

sudo chown -R www-data:www-data /var/www/mediawiki/images

Sollten die Bilder beim Test trotzdem nicht erscheinen, müssen möglicherweise die Zugriffsrechte angepasst werden.

sudo chmod -R 755 /var/www/mediawiki/images (für Ordner images und alles darunter)
sudo chmod 750 /var/www/mediawiki/images (nur für den Ordner images)

Nachbemerkungen

This guide did not address backing up the actual MediaWiki software, or your wiki's settings file, because we began by assuming you already had a working, empty wiki on the new server. There is also a strong likelihood that when you built your new, empty wiki, you selected at least one or two settings that were different from your old wiki's settings. After all, you were probably upgrading.

If you have done anything to customize the behavior of your old wiki, then you'll probably need to copy most of those custom settings into the new wiki. Generally, these customizations are stored as changes to your wiki's LocalSettings.php file, usually appended to the end of the stock file. I recommend against copying the whole file blindly, as there are some settings determined during wiki initialization that are not very portable.

Another thing to consider is the extensions folder. If you find that your new wiki shows only blank pages, or you get strange errors, it may be because extensions were not properly considered during the wiki move. Your old wiki may depend on certain extensions that were available on the old server. To preserve extension-specific behavior in the new wiki, you should ensure that the new server has all the extensions available that were enabled in your old wiki.

The handling of these issues is left as an exercise to the wikimaster. I don't feel too terrible about this, because you're probably the geek who customize your old wiki in the first place! If I'm right, I doubt you'll have any trouble re-enabling the same customizations. I just wanted to mention it here in case you forgot. Good luck!

Datenbankpflege

Nach der Übertragung der Datenbank sollte man überprüfen, ob alles ok ist:

mysqlcheck -hlocalhost -uDB_USER -pPASSWORT db_neu

Sollte es Fehler anzeigen, dann versucht diese mittels folgenden Befehl zu reparieren:

mysqlcheck -hlocalhost -uDB_USER -pPASSWORT db_neu --auto-repair

Danach sollte die Anwendung wieder sauber auf die Datenbank zugreifen können.