Compatibility/nan

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.

If you wish to suggest a change to what MediaWiki supports, you can file a request for comment on Phabricator.

Server software
These sections provide an overview of the software required on the server to run MediaWiki.

PHP
The latest stable branch of MediaWiki runs on PHP  and higher.

For upcoming versions, see.

HHVM support was dropped in MediaWiki 1.34. You are strongly advised against using it.

Wikimedia production servers and continuous integration currently run PHP 7.4, with plans to upgrade to PHP 8.1 soon. MediaWiki developers are encouraged to develop using PHP 8.1, and the MediaWiki Docker image uses PHP 8.1.

Tsu-liāu-khòo
MediaWiki is compatible with a variety of database servers. Using MySQL or MariaDB is recommended.

Using any other database software is not recommended for production use. Support differs from MediaWiki version to MediaWiki version and ranges from dubious to stable. MediaWiki provides database abstraction layers for PostgreSQL and SQLite, which are generally well-maintained.

Web server
MediaWiki is broadly compatible with all major web servers that can invoke a compatible version of PHP. Apache is the most used and tested. Nginx is a good choice as well.



MediaWiki khok-tián
As long as an extension is properly maintained (which you can see at the top of the infobox on its description page), the master branch of the extension should be compatible with the master branch of MediaWiki. For determining compatibility with older MediaWiki versions, there are the following common policies used by extensions:

Back-compatibility hacks are added to the extension source code as needed. So e.g. if you use MediaWiki, you should use the branch of the extension. So e.g. if you use MediaWiki, you should use the branch of the extension. If you use a non-LTS version of MediaWiki, usually you will need to use the extension's branch for the previous LTS version. For instance, MediaWiki 1.34 wikis using a ltsrel extension would usually use the REL1_31 branch of that extension. However, there is no guarantee of compatibility.
 * master (key: master): the master branch of the extension is compatible with both current and older versions of MediaWiki.
 * release branches (key: rel): For every MediaWiki release, there is a corresponding branch in the extension.
 * long-term support release branches (key: ltsrel): For every MediaWiki release that is a Long Term Support release (see Version lifecycle release policy) there is a corresponding branch in the extension.

The  field of the  infobox tells which policy is used by a given extension. Use the respective keys indicated above to specify the information.

Some extensions may have more specific compatibility policies, for instance:
 * MediaWiki Language Extension Bundle#Background

Liû-lám-khì


It-puann sìn-sit
There is an ever-growing number of different web browsers in the world.

Too many to actively test and support each one. To guide our practices around browser support, we have three levels of support. Each tier represents a different category of browsers.

Modern (Grade A)
This group represents the highest level of support (also known as Grade A). Features take 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 (listed below) and actively tested against. Problems users perceive in these browsers are addressed with high priority.

Basic (Grade C)
This group is provided the core functionality of the MediaWiki platform (also known as Grade C). Our HTTP responses are compatible with these browsers (e.g. HTTP features we rely on, character encoding, and image formats used by the content; must work in these browsers). In the front-end this means content is presented in a readable manner, and content and account actions can be performed, but JavaScript features may or may not work.

Some browsers in this category are known to be incompatible with modern JavaScript (ES6) and therefore do not get JavaScript features. They are identified via a feature test suite in the startup module.

Unknown (Grade X)
This group represents all other browsers (also known as Grade X). This includes:


 * Browsers or browser versions that are no longer developed or maintained, and incompatible with modern Internet standards; MediaWiki may choose to drop support.
 * Browsers not popular enough to justify the added maintenance cost for software development; problems users perceive in these browsers only are given low priority.

MediaWiki handles these browsers the same as Modern (Grade A) and Basic (Grade C) browsers: there is no user agent filter, so these browsers get JavaScript features if they pass the feature test suite in the startup module. This principle provides various important benefits:


 * New or unsupported versions of modern browsers may temporarily be considered Unknown if they are not yet tested against by us. Treating Unknown browsers as capable ensures optimal user experience in these browsers.
 * Users of new and evolving browsers are given a chance to have a modern experience.
 * Users of less popular browsers based on, or derived from, known modern browsers are not negatively impacted (e.g. Samsung Internet, UC Browser, Vivaldi, and Iceweasel).

In practice the only difference between Unknown and Basic (Grade C) browsers is that we don't actively test against Unknown browsers.

These browsers are given the full feature set, which means HTTP, HTML, CSS and JS features may or may not be compatible with these browsers, and may or may not be affected by measures (e.g. fallback CSS for newer CSS features) intended for Basic (Grade C) browsers. In particular, whether JavaScript support is enabled is decided by a feature test suite (see above).

Browser support matrix
The principles and different grades described above apply to MediaWiki core and extensions alike. The support matrix below applies these grades in the context of MediaWiki core, Wikimedia Foundation infrastructure, and any MediaWiki extensions that decide to follow it. Individual extensions may have their own support matrix distributing browsers among the different levels of support. See also Browser usage breakdown dashboard.

Mobile
The Web team at the Wikimedia Foundation applies a narrower support matrix for mobile-specific skins e.g. and/or extensions designed only to run on mobile devices e.g.. The support matrix is compiled from the data provided by the analytics user agent breakdown dashboard. Where browser usage is over 5%, a modern experience (Grade A) is supported. Basic support (Grade C) is provided for anything over 0.1% during the previous 12 months. In mobile we strive to provide a Grade B. Users of grade B may or may not get JavaScript and we do not test to the same level as A, thus we prioritise bug fixes lower. Modern support browser list on MobileFrontend is defined in file.

Anything absent in the list or older is considered a basic supported browser.



Tsham-ua̍t

 * of MediaWiki versions
 * MediaWiki - compatibility error note (example)
 * HTTPS/Browser Recommendations
 * HTTPS/Browser Recommendations