兼容性
MediaWiki致力于在包括当前版本和旧版本之间保持广泛的兼容性。与此同时,不断发展的代码库以及最新MediaWiki开发的功能意味着无法无限期地保持与旧版软件的兼容性。
如果您想建议更改MediaWiki支持的内容,可以在Phabricator上提出一個评论请求。
服务器软件
本节概述了运行MediaWiki的服务器所需的软件
PHP
最新的MediaWiki稳定分支版本(1.42)可在PHP8.1.0或更高版本上运行。
对于即将推出的版本,请参阅Support policy for PHP 。
维基媒体產品服务器当前运行PHP 7.4,將要计划升级到PHP 8.1。 MediaWiki核心的补丁在创建时以PHP 7.4进行测试,在合并时以PHP 7.4, 8.1, 8.2进行测试。 鼓励MediaWiki开发人员使用PHP 8.1进行开发,并且MediaWiki Docker image使用PHP 8.1。
如果操作系统发行版不支持PHP版本,可以使用社群软件包库:
- Debian (Ubuntu): Sury
- RHEL (Fedora / Rocky / Oracle): Remi / RHEL 9 stream
- SUSE: openSUSE contributors
- Arch (Manjaro): el:archphp
- macOS (Homebrew): shivammathur
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
8.3.0+ | |||||||||||||||||||||||||||||||||||||||||||
8.2.0+ | |||||||||||||||||||||||||||||||||||||||||||
8.1.0+ | |||||||||||||||||||||||||||||||||||||||||||
8.0.0+ | |||||||||||||||||||||||||||||||||||||||||||
7.4.3+ | |||||||||||||||||||||||||||||||||||||||||||
7.3.19+ | |||||||||||||||||||||||||||||||||||||||||||
7.2.x | |||||||||||||||||||||||||||||||||||||||||||
7.1.x | |||||||||||||||||||||||||||||||||||||||||||
7.0.x | |||||||||||||||||||||||||||||||||||||||||||
5.6.x | |||||||||||||||||||||||||||||||||||||||||||
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
5.5.9+ | |||||||||||||||||||||||||||||||||||||||||||
5.5.0–5.5.8 | |||||||||||||||||||||||||||||||||||||||||||
5.4.x | |||||||||||||||||||||||||||||||||||||||||||
5.3.3+ | |||||||||||||||||||||||||||||||||||||||||||
5.3.2 | |||||||||||||||||||||||||||||||||||||||||||
5.2.3+ | |||||||||||||||||||||||||||||||||||||||||||
5.1.x | |||||||||||||||||||||||||||||||||||||||||||
5.0.x | |||||||||||||||||||||||||||||||||||||||||||
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
資料庫
MediaWiki兼容不同种类的数据库服务器。建议使用MySQL或MariaDB。
不建議使用任何其他數據庫軟件進行生產使用。支持不同於MediaWiki版本和MediaWiki版本,範圍從可疑到穩定。 MediaWiki為PostgreSQL和SQLite提供了數據庫抽象層,這些層通常会得到得到良好的维护。
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
MariaDB 10.3.0+ | |||||||||||||||||||||||||||||||||||||||||||
MariaDB 10.1.0+ | |||||||||||||||||||||||||||||||||||||||||||
MySQL 5.7.0+ | |||||||||||||||||||||||||||||||||||||||||||
MySQL 5.5.8+ | |||||||||||||||||||||||||||||||||||||||||||
MySQL 5.0.3+ | |||||||||||||||||||||||||||||||||||||||||||
MySQL 4.x | |||||||||||||||||||||||||||||||||||||||||||
MySQL 3.x | |||||||||||||||||||||||||||||||||||||||||||
SQLite 3.8.0+ | |||||||||||||||||||||||||||||||||||||||||||
SQLite 3.3.7+ | |||||||||||||||||||||||||||||||||||||||||||
SQLite 3+ | |||||||||||||||||||||||||||||||||||||||||||
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
PostgreSQL 10+ | |||||||||||||||||||||||||||||||||||||||||||
Postgres 9.4+ | |||||||||||||||||||||||||||||||||||||||||||
Postgres 9.2+ | |||||||||||||||||||||||||||||||||||||||||||
Postgres 8.3+ | |||||||||||||||||||||||||||||||||||||||||||
Postgres 8.1 | |||||||||||||||||||||||||||||||||||||||||||
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
升级
網頁服务器
MediaWiki與所有可以調用兼容版本的PHP的主要Web服務器廣泛兼容。 Apache是最多使用且最被测试过的。 Nginx也是不錯的選擇。
MediaWiki的扩展和皮肤
只要正確維護扩展和皮肤(您可以在描述頁面的信息框頂部看到),扩展和皮肤的主分支應與MediaWiki的主分支兼容。 為了確定與較早的MediaWiki版本的兼容性,扩展和皮肤使用以下几种常用策略:
- master(关键词:master):扩展和皮肤程序的master分支与MediaWiki的当前版本和较旧版本兼容。 必要时,向后兼容性志愿者会添加到扩展和皮肤的源代码中。
- 发行分支(关键词:rel):对于每个MediaWiki版本,扩展和皮肤名中都有一个对应的分支。 因此,例如,如果您使用MediaWiki 1.42,则应使用扩展和皮肤名的REL1_42分支。
- 长期支持发行分支(关键词:ltsrel):对于每个长期支持的MediaWiki发行版本(参见版本生命周期发行方针),在扩展和皮肤中都会有一个对应的分支。 因此,例如,如果您使用MediaWiki 1.39,您应当使用REL1_39分支的扩展。 如果您使用的版本為非长期支持(LTS)版本,通常情况下您需要使用前一个LTS版本分支的扩展和皮肤。 举例来说,使用MediaWiki 1.34的wiki通常使用REL1_31版本分支的ltsrel扩展和皮肤。 然而,我们不提供兼容性的保证。
Extension 信息框中的兼容性策略字段说明了给定的扩展所使用的策略。请使用上述相应的關键字来指定信息。
某些扩展可能具有更具体的兼容性策略,舉例:
浏览器
基本信息
每个网页都以基本模式启动,在该模式下仅有呈现HTML。CSS可以被认为對视觉读者獲得成效而应该用于展现。 现代层(细分为支持等级A、C和X)定义了用客户端JavaScript所编写的可选增强功能和互動。 包括在现代浏览器中,该层可能无法加载、可能较晚加载、或可能根本不加载。 这取决于各种情况。 要了解更多信息,请参阅MediaWiki工程指南。
「现代」层的JavaScript的必需內容是通过启动模块中的功能测试來实现的,其灵感来自于"切芥末(如期待的那麼好)"的方法。 现代层目前需要JavaScript版本ES6(ES2015)。对于MediaWiki开发人员来说,这意味着你不应使用JavaScript的后续版本的语法。 这在eslint-config-wikimedia之中是通过ESLint的规则来执行。
世界上不同种类的浏览器與浏览器兼容設備的数量不断在增长。 数量多到無法每一個都积极地测试與支持。 为了指引我们在浏览器支持方面的实践,我们定义了三个支持的等级。 每个等级代表不同类别的浏览器。
实际上,浏览器等级之间唯一的区别是我们在测试和支持方面的投入。 所有浏览器都会收到相同的服务器响应,浏览器如果通过了所需的JavaScript能力要求的話,就会尝试去加载现代层。
A级
A級浏览器可获得最高级的支持。MediaWiki在为旧版浏览器提供了优美的回退的同时,也善用了现代浏览器的能力。开发的新功能必须能在这些浏览器上运行(无论是否是以降级的形式)。
此类别的浏览器眾所周知(如下列出),一路往前积极测试、然後滿足了「现代」层的要求。用户在这些浏览器中发现的问题将被优先解决。
C级
C级浏览器必须获得 MediaWiki 平台的核心功能。 我们的HTTP响应兼容於这些浏览器(例如,我们依赖的HTTP功能、字符编码、和内容使用的图像格式,必须能在这些浏览器中工作)。 在前端,这意味着内容是以人类可读的方式呈现,且内容與账号的動作可以正常进行,但JavaScript的功能或许可以或许不能正常工作。 对于未通过上述功能测试的浏览器,将根本不提供现代 JavaScript。
在这分类中的浏览器是已知的(如下所列),且是很少测试。用户在这些浏览器中发现的问题会被高度优先处理。不过,缓解措施的重点可能是在确保可用的功能不被破坏;如果从产品角度来看是可以接受的話,这可能会导致受影响的增强功能被禁用(无论是否暂时禁用),而不是在这些浏览器中恢复。
X级
所有其他浏览器皆被称为「X级」。
MediaWiki处理这些浏览器的方式与处理A级和C级浏览器的方式相同:没有用户代理过滤器,如果这些浏览器通过了「现代」层的功能测试,就会获得JavaScript增强功能。
不属于任何其他类别的浏览器都属于这一分类,包括:
- 基于或衍生於已知现代浏览器的不太流行的浏览器(例如,三星浏览器、UC浏览器、Vivaldi、Opera及Iceweasel)。
- 现代浏览器的测试版。如果我们尚未对这些浏览器进行测试,则将其视为X级浏览器。将这些浏览器视为可用浏览器可确保在这些浏览器中获得最佳用户体验,并有利於串流测试。
- 不再开发或维护,且不兼容於现代互联网标准的浏览器或浏览器版本。 它们可能会遭受「基本」模式的對待,或者甚至无法连接到网络服务器。
根据这一原则,新浏览器和不断发展的浏览器的用户将有机会获得现代化的体验。
不够流行的浏览器,不足以证明软件开发增加的维护成本是合理的;仅与这些浏览器相关的问题会被赋予低优先级。
浏览器支持矩阵
桌面版
上述的原则和不同等级同樣适用于MediaWiki核心和扩展。下面的浏览器支持矩阵将这些等级应用于MediaWiki核心、维基媒体基金会基础设施以及任一個决定遵循它的MediaWiki扩展。各个扩展可能有自己的支持矩阵,以在不同级别的支持中分发浏览器。另请参阅浏览器使用情况细分仪表板。
浏览器 | Chrome | Edge | Firefox | Safari | iOS | Android | |||
---|---|---|---|---|---|---|---|---|---|
现代 (A级) | 近三年的版本 (2021) | 11.1+ (2018年) | 11.3+ (2018年) | 5+ (2014年) | |||||
基本 (C级) | 49+ (2016年) | 79+ (2020年) | 49+ (2016年) | 10+ (2016年) | 10+ (2016年) | 5+ (2014年)[note 1] | |||
未知 (X级) | 所有其他浏览器 |
Platform | Minimum OS or device | Supported modern browser |
---|---|---|
Android | Moto G (1st generation) (2013) Google Nexus 4 (2012) |
Android 5.1, Chrome 95, Firefox (current) |
Samsung Galaxy S5 (2014) | Android 6.0, Chrome 106, Firefox (current) | |
iOS | iPhone 5s (2013) | iOS Mobile Safari 11.3 - 12 (2018-2023)[note 2] |
Linux | Debian 10 Buster (2019) | firefox-esr 102 |
Ubuntu 18.04 LTS (2018) | firefox (current), chromium-browser (current) | |
macOS | OS X 10.11 El Capitan (2015-2018) | Safari 11.1, Chrome 103 |
macOS 10.13 High Sierra (2017-2020) | Safari 13, Firefox 115 ESR, Chrome 116 | |
macOS 10.15 Catalina (2019-2022) | Safari 15, current Firefox, Chrome 128 | |
macOS 11 Big Sur (2020-2023) | Safari 16, current Firefox, current Chrome | |
Windows | Windows 7 (2009-2020) | Edge 109, Firefox 115 ESR, Chrome 109 |
变更列表(时间越近越靠前):
- As of MediaWiki 1.43 , Basic support is removed for Internet Explorer 11 (IE 11), Edge 12–18, Chrome 31–48, Firefox 39–48, Safari 9 on macOS and iOS, and Opera. Chromium versions of Opera will probably see exactly the same experience as before. T288287
- 2023年,支持浏览器的目标经过重新表述;对Chrome及基于Chrome的浏览器,现在的目标是支持最近三年的版本(覆盖三年而非三个月);对Firefox,现在的目标是支持当前及前一个LTS版本(以达到近似相同的时间范围)。 T178356
- MediaWiki 1.41起,不再对Internet Explorer 11、macOS和iOS的Safari 9-10、Firefox 39-53提供现代级别的支持。 T178356
- MediaWiki 1.39起,不再对Internet Explorer 9-10、Firefox 27-38和Android 4.3-4.4提供基本支持。 T293298, T297313, T290815
- 自MediaWiki 1.36起,移除了对Firefox 3-26、Internet Explorer 8、Safari 3-8、iOS (Safari) 5-8、Android 3.0-4.2、Chrome 1-30和Opera 15-18的基本支持。 T248061, T262946, T266866
- 自MediaWiki 1.36起,移除了对Android 4.1-4.2、iOS 6.1-8和Safari 5.1-8的现代支持。 T266866
- 从MediaWiki 1.35开始,移除了对Internet Explorer 6-7和Android 2的基本支持。 T232563, T249788
- 自MediaWiki 1.31起,Internet Explorer 10的JavaScript已被禁用。 T187869
- 自MediaWiki 1.29起,Internet Explorer 9以及其他非ES5的浏览器的JavaScript已被禁用。 T128115
- 自MediaWiki 1.27起,Internet Explorer 8的JavaScript已被禁用。 T118303, Wikitech-ambassadors message
- 自MediaWiki 1.24起,Internet Explorer 6和7的JavaScript已被禁用。 gerrit:152072, gerrit:152128, Wikitech-ambassadors message
The Wikimedia Foundation also provides an up-to-date browserslist config reflecting the support matrix.
移动
维基媒体基金会的网络团队采用更严格的支持矩阵,用于特定于移动设备的皮肤,例如Minerva 和/或设计仅用于在移动设备上运行的扩展程序,例如移动版前端 。
支持矩阵是根据分析用户代理细分仪表板提供的数据编译的。
浏览器使用率超过5%时,會支持现代体验(A级)。
在过去的12个月内提供超过0.1%的任何基本支持(C级)。
在移动设备中,我们努力提供B级。B级用户可能会也可能不会获得JavaScript,并且我们的测试水平未达到A级,因此我们将错误修复的优先级降低了。
支持MobileFrontend的现代浏览器的列表请看.browserlistsrc
。
列表中未包含的内容或较旧的内容都被视为基础支持的浏览器。
參見
- MediaWiki版本的版本生命周期
- No-JavaScript notes
- MediaWiki - compatibility error note (example)
- wikitech:HTTPS/Browser Recommendations
- Graded Browser Support by YUI (2011-2015)
- Graded Browser Support by Yahoo (2006-2012)
注释
- ↑ Note this refers to the stock Android browser. For Chrome for Android, provided that you're running Chrome 49+, it requires Android 4.1+(2012年). For Firefox for Android, provided that you're running Firefox 49+, it requires Android 4.0+(2011年).
- ↑ iOS 11 dropped support for iPhone 5 and older devices