Jump to content

Příručka"Mezipaměť Interwiki

From mediawiki.org
This page is a translated version of the page Manual:Interwiki cache and the translation is 100% complete.

MediaWiki má databázovou tabulku (interwiki tabulka) pro prefixy Interwiki. Toto se standardně používá přímo, ale pro lepší výkon lze použít dva typy mezipamětí.

Databáze a paměť uložená v mezipaměti

Když bude povoleno memcached, předpony interwiki v databázové tabulce budou také v mezipaměti. To lze ovládat pomocí nastavení $wgInterwikiExpiry .

Tato mezipaměť může být vyčištěna pomocí skriptu clearInterwikiCache.php . Odstraňuje ukládání do mezipaměti na základě předpon nalezených v tabulce databáze.

Mezipaměť Interwiki

Proměnná $wgInterwikiCache může být nastavena na statické pole, které bude použito místo v tabulce databáze, čímž se dosáhne ještě lepšího výkonu odstraněním latence na memcached a vyhýbání se dotazů na databázi pro naplnění mezipaměti.

Pole je obvykle uloženo do souboru PHP obsahujícího <?php return array( .. ); a načteno přiřazením k $wgInterwikiCache s require.

MediaWiki v současné době neposkytuje bubliltovaný skript pro vytvoření takového souboru mezipaměti (T35395), ale rozšíření Rozšíření:WikimediaMaintenance obsahuje dumpInterwiki.php , což je skript specifický pro WMF.

Při čtení této mezipaměti se používají nastavení $wgInterwikiScopes a $wgInterwikiFallbackSite .

Nastavení na vaší vlastní wiki

  • Budete potřebovat kopii extension/WikimediaMaintenance. Umístěte jej do adresáře extensions v kořenovém adresáři vaší instalace MediaWiki.
  • Načtěte soubory all.dblist, special.dblist a langlist a umístěte je, pro pohodlí, někam (např. do podadresáře v základně vaší instalace MediaWiki).
  • Upravte extension/WikimediaMaintenance/dumpInterwikis.php a změňte cestu /srv/mediawiki pro tyto tři soubory na cestu k adresáři, kam jste je právě umístili.
  • Ze základny vaší instalace MediaWiki vytvořte
    echo 'print WikiMap::getCurrentWikiId();' | php maintenance/eval.php
Přidejte tuto hodnotu k all.dblist, za předpokladu, že tam ještě není. Pokud nezačíná kódem známého jazyka (např. je to řekněme 'wikitech-mw_' místo něčeho pěkného jako 'frwiktionary'), přidejte jej také k special.dblist. Kódy jazyků můžete zkontrolovat v souboru langlist, který jste zkopírovali.
  • Ze základny vaší instalace MediaWiki vytvořte
    php extensions/WikimediaMaintenance/dumpInterwiki.php > cache/new-interwikis.php
    or in versions since MediaWiki 1.40:
    ./maintenance/run extensions/WikimediaMaintenance/dumpInterwiki.php > cache/new-interwikis.php
  • Ze základny vaší instalace MediaWiki vytvořte kopii jakéhokoli existujícího souboru cache/interwiki.db, který máte, a poté vytvořte
    cp cache/new-interwikis.php cache/interwiki.php
  • Upravte LocalSettings.php a přidejte
    $wgInterwikiCache = require "$IP/cache/interwiki.php";

Nyní by pro váš projekt měly fungovat zkratky a všechny ostatní odkazy iw. Všimněte si, že pokud jej přidáte do 'special.dblist', bude se chovat, jako by to byla 'wikipedie' s en jako výchozím jazykem.