User:Aaron Schulz/How to make MediaWiki fast
From MediaWiki.org
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.