Mezipaměť Interwiki

This page is a translated version of the page 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 (bug 33395), ale rozšíření wikidiaMainTenainte 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

Podívejte se na Interwiki mezipaměť/Nastavení pro vaši vlastní wiki pro levnější způsoby, jak to udělat, za předpokladu, že chcete, aby interwiki odkazy na vaší wiki přivedly čtenáře k projektům Wikimedia Foundation. Pro bolestivější, ale správnější přístup, viz níže.

  • Budete potřebovat kopii rozšíření/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 wfWikiID();' | php maintenance/eval.php
    or in versions since MediaWiki 1.35:
    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.


Načítání předpon interwiki

Chcete-li zobrazit předpony interwiki, můžete použít API (action=query&meta=siteinfo&siprop=interwikimap) nebo nainstalovat rozšíření Interwiki.