Příručka"Mezipaměť Interwiki
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.