User:Aaron Schulz/How to make MediaWiki fast

From MediaWiki.org

Jump to: navigation, search

1. Install xcache, eAccelerator, or APC

2. To localsettings.php, add (replace dirs as needed):

## Shared memory settings
$wgMainCacheType = CACHE_ACCEL;
$wgMessageCacheType = CACHE_ACCEL;
$wgCacheDirectory = 'C:\Server\xampp\htdocs\MW_trunk\MsgCache';
$wgParserCacheType = CACHE_ACCEL;
$wgMemCachedServers = array();
# File cache!
$wgUseFileCache = true;
$wgFileCacheDirectory = 'C:\Server\xampp\htdocs\MW_trunk\cache';
$wgUseGzip = true;
$wgEnableSidebarCache = true;
# NO DB HITS!
$wgDisableCounters = true;
$wgMiserMode = true;
# Text cache
$wgCompressRevisions = true;
$wgRevisionCacheExpiry = 3*24*3600;
$wgParserCacheExpireTime = 14*24*3600;
# Diffs
$wgDiff = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff.exe';
$wgDiff3 = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff3.exe';
/***********/

3. Set the $wgFileCacheDirectory if you want to use file caching. On a larger site, you should use squid servers instead of file caching.

4. Set $wgCacheDirectory as needed (for message caching).

5. Set up Memcached if possible. If you do, set $wgMainCacheType and $wgParserCacheType to CACHE_MEMCACHED in localsettings.php instead. This is recommended if you have a cluster of servers.

6. Run maintenance/rebuildFileCache.php if you use file caching (not squids).

7. Set $wgJobRunRate to 0 and set up a crontab or shell script to run jobs (like this with this for example). With $wgJobRunRate at 0 and the above changes, you should be able to avoid db hits on many requests.

8. Set $wgDiff and $wgDiff3 to gnu diff utility (download as needed). This is recommended. The default PHP diff code is slow and crashy.

9. Edit the MediaWiki:Aboutsite and MediaWiki:Pagetitle system messages by changing {{SITENAME}} into your site name. This avoids extra parsing on each hit.