pondělí 16. října 2017

Přenos Wiki do MediaWiki v1.27 na Ubuntu 16.04LTS

Přenos obsahu wiki v1.27.3 v Ubuntu 16.04 na jiný server. V praxi vyzkoušeno na přenosu z MediaWiki v1.15.1 (Ubuntu 8.04LTS) na MediaWiki v1.27.3 (Ubuntu 16.04LTS).


Nejprve musí být zprovozněna správná verze PHP (obvykle - kvůli phpmyadmin - 5.6):

1 Nastavení Wiki

Nastavení konkrétní wiki jsou v LocalSettings.php. Je nutno upravit nový soubor podle původního. Zejména se jedná o definice uživatelských skupin.

2 Zastavení aktualizace staré wiki

Do LocalSettings.php na staré wiki přidat:
#Uzamceni Wiki
$wgReadOnly = "Prechazime na novy server, tato Wiki je uzamcena.";
$wgIgnoreImageErrors=true;
Uživatelé budou schopni wiki číst, budou ale blokovány veškeré změny.
V aktuální verzi (1.27.3) je chyba, způsobující, že se po nastavení $wgReadOnly nelze do wiki přihlásit, což v případě "zaheslované" wiki znemožňuje jakýkoli přístup.

 

3 Uživatelské účty a definice skupin

  • Definice skupin jsou v LocalSettings.php, při sjednocování by již měly být přeneseny
  • Uživatelské účty jsou v tabulce user. Přenést je lze např. pomocí phpmyadmin. Je nutné odstranit (pokud je vygenerován) příkaz na zrušení a vytvoření tabulky a první záznam (WikSysop).
    V praxi to moc nefunguje, phpmydmin neumí načíst ani tabulku uživatelů vyexportovanou na tomtéž počítači.
    Pokud se uživatelé vytváří znovu, měli by mít stejné číslo user_id jako ve staré wiki.
  • Přiřazení uživatelů do skupin je v tabulce user_groups. Přenést ji lze obdobně jako tabulku users.

4 Přenos textu wiki

 

4.1 Export textu Wiki

Musí se použít spuštění se správnou verzí php:
/var/www/html/mediawiki/maintenance# php5.6 dumpBackup.php --full >dump.xml
/var/www/html/mediawiki/maintenance# php5.6 dumpUploads.php --full >dumpupload.txt
/var/www/html/mediawiki/maintenance# php5.6 dumpLinks.php --full >dumpuplinks.txt

4.2 Import textu wiki

Tento import trvá VELMI dlouho (obvykle desítky minut až několik dní).
/var/www/html/mediawiki/maintenance# php5.6 importDump.php dump.xml 
/var/www/html/mediawiki/maintenance# php5.6 rebuildrecentchanges.php

5 Přenos obrázků a souborů

Správně nastavit velikost souborů (zde jsem zvolil maximum 128MB):
  1. /etc/php/5.6/apache2/php.ini
    • post_max_size = 128M
    • upload_max_filesize = 128M
    • Nezapomenout restartovat apache2!
  2. /var/www/html/mediawiki/LocalSettings.php
    • $wgMaxUploadSize = 1024*1024*128; # 128MB
Z adresáře images na zdrojovém počítači vykopírovat soubory do pomocného adresáře na cílový počítač. Pozor na diakritiku v názvech souborů, nejlépe je použít propojení přenos, který respektuje kódování zdrojového i cílového počítače, např. pomocí SCP/SFTP.
chown -R www-data /var/www/html/mediawiki/images
V LocalSettings.php doplnit dočasně:
$wgDisableUploadScriptChecks = true;
$wgCheckFileExtensions = false;
$wgStrictFileExtensions = false;
$wgVerifyMimeType= false;
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg','pdf', 'dm2', 'mpp', 'bmp',
                           'eap', 'zip', 'doc', 'docx', 'xls', 'xlsx', 'xlsm', 
                           'ppt', 'pptx', 'dtd', 'xml', 'svg', 'sql', 'php.pdf',
                           'h', 'cpp', 'mht', 'odt', 'ods', 'mp3', 'mp4', 'chm',
                           'conf', 'pem', 'cer', 'crt', 'vsd', 'txt', 'mov', 'dss',
                           'lic', 'cdr', 'odp', 'gpx', 'sh', 'log', 'rtf', 'ai',
                           'zmf', 'eps', 'rpm', 'deb', 'wmf', 'raw', 'mm', 'spk',
                           'css', 'opx', 'emf', 'tar.gz', 'hlp');
(V poli wgFileExtensions musí být všechny použité přípony souborů, nebo je script ignoruje)

Spustit scripty:
/var/www/html/mediawiki/maintenance# php5.6 importImages.php <adresář_s_obrázky> --search-recursively
chown -R www-data /var/www/html/mediawiki/images
/var/www/html/mediawiki/maintenance# php5.6 rebuildImages.php
(Při ev. opakovaných pokusech je vhodné do příkazu pro importImages přidat --skip-dupes)

Nastavit v LocalSettings.php původní (nebo správné) hodnoty symbolů:
#$wgDisableUploadScriptChecks = true;
$wgCheckFileExtensions = true;
$wgStrictFileExtensions = true;
$wgVerifyMimeType= false;
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg','pdf', 'dm2', 'mpp', 'bmp',
                           'eap', 'zip', 'doc', 'docx', 'xls', 'xlsx', 'xlsm',
                           'ppt', 'pptx', 'dtd', 'xml', 'svg', 'sql', 'php.pdf',
                           'h', 'cpp', 'mht', 'odt', 'ods', 'mp3', 'mp4', 'chm',
                           'conf', 'pem', 'cer', 'crt', 'vsd', 'txt', 'mov', 'dss',
                           'lic', 'cdr', 'odp', 'gpx', 'sh', 'log', 'rtf', 'ai',
                           'zmf', 'eps', 'rpm', 'deb', 'wmf', 'raw', 'mm', 'spk',
                           'css', 'opx', 'emf', 'tar.gz', 'hlp');
Pokud je použit, tak překopírovat adresář s velkými soubory, na které se dělá odkaz přes http(s): např. /var/www/html/mediawiki/downloads

6 Dokončení přenosu

/var/www/html/mediawiki/maintenance# php5.6 rebuildall.php

7 Přřipojení přenesené hlavní stránky

Pomocí History najít poslední verzi ze starého webu, otevřít pro editaci a uložit.

8 Kontrola úplnosti přenosu

  1. Zkontrolovat chybějící soubory
  2. Zkontrolovat chybějící stránky

Žádné komentáře:

Okomentovat