Handleiding:Een wiki met een back-up herstellen

This page is a translated version of the page Manual:Restoring a wiki from backup and the translation is 100% complete.

Men moet regelmatig een back-up maken van zijn wiki, zelfs als men het nooit hoeft terug te zetten: het hebben van back-ups geeft gemoedsrust. Een back-up is echter nutteloos als men niet kan herstellen door het terug te zetten, en oefenen met het gebruiken van een back-up voorkomt later leed. Daarom deze instructies.

Versies en upgraden

De instructies op deze pagina moeten min of meer gelijk zijn voor elke versie van MediaWiki. U kunt de database herstellen naar een meer recente versie van MediaWiki, maar zorg ervoor dat u het updatescript uitvoert. Het gebruiken van een back-up van een database van een nieuwere versie in een oudere versie van de software wordt niet ondersteund.

File transfer

Tenzij u rechtstreeks toegang heeft tot de server die de wiki host, (en zelfs dan) moet u een methode kiezen voor het overzetten van bestanden:

Overzicht

  1. Opnieuw aanmaken van de database, gebruikers en rechten
  2. Importeren van de database back-up
  3. Importeren de MediaWiki-bestanden
  4. Het configuratiebestand controleren
  5. Testen

Opnieuw aanmaken van de database, gebruikers en rechten

Op de server waarop u MediaWiki herstelt, zorg ervoor dat u

  1. een correct werkende instantie van MySQL heeft
  2. een MySQL-gebruiker heeft met passende rechten, als u MySQL-user root niet kunt gebruiken

Als u vanwege databasecorruptie een back-up wilt herstellen, overweeg dan MySQL opnieuw te installeren! Zodra MySQL goed werkt, maak een nieuwe MySQL-database aan en geef uw gebruikersaccount rechten op de onderstaande database. Mogelijk moet u de MySQL-documentatie, de documentatie van het configuratiescherm van uw hostingprovider of de documentatie van andere hulpprogramma's die u gebruikt raadplegen voor informatie over hoe u dit kunt doen. Vanuit de MySQL-prompt als MySQL-gebruikersroot kunt u:

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;
Het maakt niet uit of de database niet dezelfde naam heeft; In een commerciële hostingomgeving, waar databasenamen meestal worden voorafgegaan door een gebruikersnaam voor een hostingaccount, is een andere databasenaam bijna gegarandeerd. Bovendien kan de gebruikersnaam en het wachtwoord van die gebruiker verschillen. U zult het bestand LocalSettings.php op de nieuwe locatie dienovereenkomstig moeten aanpassen.

Een back-up van de database importeren

See also Manual:Importing XML dumps

Importeer vervolgens uw database back-up. Hiermee worden de tabellen in de database gemaakt en gevuld met gegevens. Het importeren neemt een hoeveelheid tijd in beslag, die afhankelijk is van het aantal pagina's, gebruikers, bewerkingen, enz. in uw wiki.

Methoden

Vanaf de opdrachtregel met behulp van mysqladmin

Als er een database bestaat en u deze volledig wilt vervangen door de back-up. Om de oude database te verwijderen:

mysqladmin -u wikidb_user -p drop wikidb

Aanpassen van wikidb_user en wikidb. De parameter -p vraagt u om het wachtwoord.

Om een nieuwe database te maken:

mysqladmin -u wikidb_user -p create wikidb

Bijvoorbeeld na het maken van een back-up met mysqldump:

# Doe dit niet nu: zo had u eerder een back-up kunnen maken.
mysqldump --default-character-set=binary --user=wikidb_user --password=wikidb_userpassword wikidb > dump_of_wikidb.sql
# De wikidatabase wikidb waarvan u een back-up heeft gemaakt, kan een andere naam hebben
# dan de wikidatabase wikidb die u hierboven hebt aangemaakt. Natuurlijk kunnen wikidb_user en
# wikidb_userpassword ook anders zijn.

Zorg ervoor dat u de juiste karakterset vermeld of het restoren kan mislukken, controleer LocalSettings.php om te weten te komen welke karakterset het is.

Om dump_of_wikidb.sql te importeren via de commandolijn doet u gewoon:

mysql -u wikidb_user -p wikidb < dump_of_wikidb.sql

en doe daarna, indien nodig:

php wikifolder/maintenance/update.php
# De meeste mensen noemen hun wikimap gewoon "w", waardoor deze padnaam ontstaat 
# iets als "htdocs/w/maintenance/update.php"
Na het gebruik van dump, moet u niet mysqlimport gebruiken om uw wikidatabase te restoren, u moet sql gebruiken. Omdat mysqlimport vereist dat de gegevens worden geladen in een bepaald gedelimiteerd tekstformaat, bijvoorbeeld. CSV, terwijl de uitvoer van mysqldump een aantal SQL-statements is.
Als u de oude LocalSettings.php niet naar een nieuwe installatie kopieert, zorg er dan voor dat de databaseprefix is ingesteld op de vorige installatie in de nieuwe installatie voordat u php update.php uitvoert

Zie ook Executing SQL Statements from a Text File

Als uw site langzaam is na het importeren van een dump, moet u misschien de indexen opnieuw laten opbouwen. Zie Na het importeren van SQL-bestanden zijn indexen op hun plaats, maar niet daadwerkelijk geïndexeerd

Met de browser voor phpMyAdmin

Open de browser naar uw phpMyAdmin, log in, kies de wiki database. (Controleer LocalSettings.php als u de database niet zeker weet). Volg de instructies in de phpMyAdmin documentatie.

Met een XML-dump

Hoofdartikel: Manual:Importing XML dumps

Om een XML-dump in een wiki te importeren, gebruikt u het hulpmiddel importDump.php . Doe:

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

Vervang wikidb_userpassword, wikidb en path-to-dumpfile/dumpfile.xml door de juiste waarden.

Gebruik daarna ImportImages.php om de afbeeldingen te importeren:

php wikifolder/maintenance/importImages.php wikifolder_backup/images

De MediaWiki-bestanden importeren

See also Manual:importImages.php

Herstel vervolgens uw back-up van het MediaWiki bestandssysteem: dit is de laatste "grote" stap in het herstelproces.

  • Als u de instructies uit de back-up manual heeft gevolgd en een back-up hebt gemaakt van de hele map, dan is dat inclusief de mappen images en extensions, plus aangepaste skins, etc. en het configuratiebestand.
  • Als u alleen van delen van de map een back-up heeft gemaakt, bijvoorbeeld images, extensions, etc., dan moet u eerst een nieuwe installatie van de MediaWiki-bestanden uploaden / kopiëren, en vervolgens de back-up-mappen en bestanden overbrengen naar de juiste locaties in het nieuwe bestandssysteem.

Om het bestandssysteem van Wiki te wissen en te herstellen

Vergeet niet om ook de bestandssysteemcomponenten van de wiki te herstellen die nodig zijn, bijvoorbeeld afbeeldingen, logo's en extensies. Vooral om LocalSettings.php te bewerken om te controleren of alles correct is. Een aantal Linux-commando's om het wiki-bestandssysteem te wissen en te herstellen zou er als volgt uit kunnen zien:

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

Open de wiki vanuit de browser en klik op de link Stel eerst de wiki in. Zie Handleiding:Configuratie script voor details. Als het nodig is, kunt u de command-line installer php wikifolder/maintenance/install.php uitvoeren. Nadat dit gedaan is, bewerken we LocalSettings.php om de nieuwe installatie aan te passen, het herstellen van regels voor extensies, enz. Herstel uit back-up van alle andere bestanden, zoals een aangepast logo en favicon met de juiste paden.

Als u niet als root Linux/Unix-gebruiker heeft geïnstalleerd en de afbeeldingen en miniaturen niet werken, moet u de eigenaar of machtigingen recursief corrigeren in de map met de geüploade afbeeldingen, meestal in wikifolder/images.

Opmerkingen

  • Als u dit laatste proces volgt, zorg er dan voor dat uw "nieuwe installatie" bestaat uit dezelfde versie van MediaWiki als de oude
  • Controleer of de uploadmap (bijv. afbeeldingen in versie 13) de juiste machtigingen heeft ingesteld als u uploads gebruikt; Het moet beschrijfbaar zijn door de webserver.
  • Zorg ervoor dat alle mappen voor extensies ook de juiste rechten hebben (bijv. voor linux: chmod -R o=rx extensions of chmod -R o=rx includes)
  • De beste methode om te gebruiken bij het handmatig overzetten van een wiki van een Windows-platform naar een Linux-platform is:
    1. Het handmatig installeren van MediaWiki op het Linux-platform vanuit een tar-bestand zoals hier beschreven: Handmatige installatie van Wiki (d.w.z. probeer geen installatie te gebruiken vanuit een geautomatiseerd pakket)
    2. Het vervangen van de nieuw geïnstalleerde MediaWiki-map (bijv. /var/www/mediawiki...) op uw Linux-computer door de MediaWiki-basismap van uw Windows-computer
    3. Update de MySQL Database van uw Linux-computer (bijv. wikidb) met de wiki-database van uw Windows-computer. (d.w.z. gebruik de back-up- en herstelfuncties van MySQL zoals hierboven beschreven)
  • Na het importeren van een wiki-database kunnen er enkele kleine problemen ontstaan, zelfs als de database lijkt te werken:
    1. Searchindex moet mogelijk worden gerepareerd: Voer in phpMyAdmin REPAIR TABLE wikidb.searchindex; in voor het opnieuw opbouwen van de zoekindex. wikidb is de naam van uw database.
    2. De 'collation' van sommige rijen kunnen zijn gewijzigd. Controleer het met de originele database.

Configuratie-bestand controleren

De laatste taak is de verificatie van en eventueel het wijzigen van het bestand LocalSettings.php .

  • Als u herstelt op dezelfde server waarvan u een back-up heeft gemaakt, hoeft u waarschijnlijk niets te wijzigen.
  • Als u herstelt naar een nieuwe server (d.w.z. als u de MediaWiki verplaatst of dupliceert), zullen bepaalde items vrijwel zeker moeten worden gewijzigd, en het kan zijn dat u ook de informatie over de databaseverbinding moet wijzigen.

Controleer de volgende configuratieopties:

Configuratieoptie Actie vereist Standaard/Voorbeeld
$IP Moet correct zijn voor de paden op de nieuwe server

(Blijft meestal het hetzelfde, dus geen wijziging nodig)

Standaardwaarde:
 if( defined( 'MW_INSTALL_PATH' ) ) {
 	$IP = MW_INSTALL_PATH;
 } else {
 	$IP = dirname( __FILE__ );
 }
$wgScriptPath Moet correct zijn voor het pad op de nieuwe server

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

$wgArticlePath Moet correct zijn voor het pad op de nieuwe server

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

$wgDBserver Controleer of de naam van de database-server correct is

Voorbeeld:
$wgDBserver = "localhost";

$wgDBname Dit kan veranderd zijn in een gedeelde hosting omgeving

$wgDBname = "wikidb";

$wgDBuser Dit kan veranderd zijn in een gedeelde hosting omgeving

$wgDBuser = "wikidb_user";

$wgDBpassword Controleer of dit correct is voor de nieuwe gebruiker

$wgDBpassword = "wikidb_userpassword";

Mogelijk moet u ook de paden controleren naar diff3, ImageMagick, enz.

Test

Probeer nu de wiki op de nieuwe server te gebruiken. Log in als beheerder en als een gewone gebruiker en controleer of het bekijken, maken en bewerken van pagina's en het uploaden van bestanden nog steeds werkt. U moet alle problemen oplossen die worden gemeld door PHP of MediaWiki.

Veel voorkomende problemen

Na het verhuizen ziet u mogelijk PHP-waarschuwingen waarin staat dat bepaalde bestanden niet toegankelijk zijn. Dit wordt waarschijnlijk veroorzaakt door phabricator:T37472: De kolom md_deps in de tabel module-deps bevat absolute paden, die worden gebruikt om de afbeeldingen en LESS-bestanden te lokaliseren waarvan CSS van afhankelijk is. Deze paden kloppen niet meer wanneer de wiki bijvoorbeeld wordt verplaatst naar een andere map of naar een andere server.

Totdat dit probleem is opgelost, kunt u dit opvangen door handmatig de verkeerde records in de tabel module_deps aan te passen:

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

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

Dit kan worden gebruikt om verkeerde delen van het pad te herstellen en daarmee het probleem te verhelpen.

Zie ook

Referenties