Compatibility

MediaWiki strives to maintain broad compatibility between versions, and with a range of current and legacy software. At the same time, the constantly-evolving codebase and features of the latest MediaWiki development mean that it is not possible to maintain compatibility with legacy software indefinitely.

PHP
The latest version of MediaWiki runs on any version of PHP to PHP 5.5. At this time, HHVM has [https://bugzilla.wikimedia.org/buglist.cgi?keywords=hiphop&list_id=332195&product=MediaWiki&query_format=advanced&resolution=--- unresolved issues] and might cause some functions to break.

The latest versions of MediaWiki contain features which are not supported by PHP 5.0, 5.1 and 5.2; attempts to run with these versions will fail.

PHP 4 is unsupported since MediaWiki 1.7, and attempts to run it will fail. If you are unable to upgrade your environment to PHP 5, you must use MW 1.6; note that this release has security issues and is no longer supported by the MW community (neither is PHP 4 supported by the PHP one).

Database
MediaWiki is compatible with a variety of database servers, although support is strongest for MySQL. (MariaDB can also be used.)

Support for any other database software ranges from dubious to stable; architectures for which have at least some support. Anything other than MySQL or MariaDB is not recommended for production use at this point.

Web server
MediaWiki is broadly compatible with all major web servers that can invoke PHP. Apache is the most used and tested. So long as the webserver version supports the required PHP version based on the matrix outlined here.

Browsers
This describes our practices around browser support.

Grade C
The base level support provides the core functionality of the MediaWiki platform. Our HTTP responses are compatible with these browsers (e.g. HTTP features we rely on, character encoding, and image formats used in the content; must work in these browsers). In the front-end this means content is presented in a readable manner, and to some extent user actions can be performed.

Browsers in this category are known and identified via a blacklist in the startup module.

The software provides these browsers a javascriptless environment. The environment may lack certain visual features and extra functionally. The core functionality for these browsers must be maintained via traditional client-server interaction with full GET/POST page loads. Problems users perceive in these browsers are addressed with high priority. Issue handling focusses mainly on ensuring provided functionality is not broken; if acceptable from a product perspective, this may result in the functionality (whether or not temporarily) no longer being provided for these browsers.

Grade A
This level represents the highest level of support. It takes advantage of capabilities in modern browsers, while allowing a graceful fallback for older browsers. All features provided by the software (whether or not in a degraded form) must work in these browsers.

Browsers in this category are known and actively tested against. Problems users perceive in these browsers are addressed with high priority.

Grade X
This level represents all other browsers. This includes browsers that are no longer developed or browsers not popular enough to justify the added maintenance overhead.

Browsers not included in any other grade belong to this category.

Treatment
The software treats these browsers the same as Grade A browsers and are thus assumed to be capable. This principle provides various important benefits:
 * Newly released versions of Grade A browsers may unexpectedly be considered Grade X if they are not yet tested against.
 * Users of upcoming browsers are given a chance to have a Grade A experience.
 * Users of less popular browsers based on or derived from browsers with the same capabilities are not negatively impacted (e.g. Iceweasel).

In practice the only difference between Grade X and Grade A browsers is that we don't actively test against Grade X browsers. And problems users perceive in these browsers only are not prioritised.

Browser support matrix
While the principles and different grades described above apply to MediaWiki core and extensions alike, the below browser support matrix applies to MediaWiki core only (and extensions that decide to follow it). Individual extensions may have their own support matrix distributing browsers among the different levels of support differently.


 * A few mobile browsers are included here. However as noted earlier, this matrix is for MediaWiki core and its desktop skin. Mobile-specific skins and/or extensions especially for mobile devices may have a different support matrix.