Manual:Cache

MediaWiki is a very complex web-application, this means that it can take some time to render pages. To mitigate these costs, many MediaWiki administrators install one of many caching solutions. They are by no means compulsory, though they can decrease the time it takes pages to load, and decrease server workload. This page is divided into four sections, in order to cache everything, you need to enable a solution from each group. It is very likely that you do not need to cache everything, simply enable things that you can, until you have acceptable performance. In some cases, over-caching will cause a degradation of performance.

PHP caching
Den første ting MediaWiki gør, når det kører, er at læse alle PHP-filer den har brug for. Da der er hundredvis af filer, der kræves for at håndtere selv simple anmodninger, caching disse filer i en form, der er hurtigere at læse hjælper. Der er allerede eksisterende værktøjer, der gør det for dig:


 * [Http://php.net/manual/en/book.apc.php APC] (Alternative PHP cache). Denne funktion er tilgængelig som en pakke fra mange linux distributioner, eller fra PECL og anbefales.
 * [Http://www.php-accelerator.co.uk/ PHP speeder].
 * [Http://eaccelerator.net/ eAccelerator].

MediaWiki behøver ikke at vide om dette, og det vil "bare arbejde", hvis du installerer nogen af dem. Du kan bruge phpinfo at kontrollere, at cache er installeret og konfigureret korrekt. Yderligere oplysninger kan fås fra disse projekter, og google er din ven!

Object caching
Under kørsel, MediaWiki brug for en masse data at oprette en side. Normalt alle disse data skal komme fra databasen, eller fra potentielt dyre operationer. Caching alle disse data (i "object cache") vil hjælpe. Dette er nok denvigtigste cache for de fleste installationer.


 * På en enkelt server
 * Hvis du har en PHP byte-kode cache, se PHP caching ovenfor, kan du nemt bruge denne til at gemme alle de ekstra oplysninger. Dette er stærkt anbefales, og kræver følgende linje i LocalSettings.php:
 * Hvis du ikke er i stand til at anvende en sådan cache, så du kan være i stand til at bruge memcached, se denne side for detaljer. Det er betydeligt mere kompliceret, men stadig meget effektiv.
 * De to andre typer af objekt cache bruge en database for caching. Dette kan (eller måske ikke) være bedre end ingenting, men en af de to foregående løsninger bør være forsøgt først.
 * De to andre typer af objekt cache bruge en database for caching. Dette kan (eller måske ikke) være bedre end ingenting, men en af de to foregående løsninger bør være forsøgt først.


 * På flere servere
 * Hvis du har flere applikationsservere kører MediaWiki i en load-balancering konfiguration, skal du bruge memcached , detaljerede instruktioner er på denne side.

Hvis du indstiller $ wgMainCacheType er værdierne for  $ wgParserCacheType og  $ wgMessageCacheType vil arve den. Du behøver ikke at sætte disse variabler, medmindre du har planer om at gøre noget meget avanceret.

Localization caching

 * New in 1.16

On the observation that a large number of the cached objects above were interface messages, the bits of text that are not content, an advanced localisation cache was introduced. If you wish to take advantage of it set $wgCacheDirectory appropriately.

Page caching
Once the entire page has been rendered, it is often served multiple times, identically, to not-logged-in users. There is no need to ask MediaWiki to repeat itself.


 * On multiple servers
 * If you have multiple application servers running MediaWiki in a load-balanced configuration, use an existing HTTP-level cache, such as varnish or squid.


 * On a single server
 * You may use varnish/squid, as above, or leverage any support your web-server has for HTTP caching. If this is not an option, for example you are on a shared host, then consider enabling the file cache, detailed instructions are on that page.