兼容性

本頁使用了標題或全文手工轉換
From mediawiki.org
This page is a translated version of the page Compatibility and the translation is 100% complete.

MediaWiki致力于在包括当前版本和旧版本之间保持广泛的兼容性。与此同时,不断发展的代码库以及最新MediaWiki开发的功能意味着无法无限期地保持与旧版软件的兼容性。

如果您想建议更改MediaWiki支持的内容,可以在Phabricator上提出一個评论请求

服务器软件

本节概述了运行MediaWiki的服务器所需的软件

PHP

最新的MediaWiki稳定分支版本(1.41)可在PHP7.4.3或更高版本上运行。

对于即将推出的版本,请参阅Support policy for PHP

HHVM支持已在MediaWiki 1.34中删除。 强烈建议您不要使用它。

维基媒体產品服务器和持续集成当前运行PHP7.4,將要有计划升级到PHP 8.1。 鼓励MediaWiki开发人员使用PHP 8.1进行开发,并且MediaWiki Docker image使用PHP 8.1

由于上游漏洞,MediaWiki与PHP 7.4.0 - 7.4.2不兼容。 请改用PHP 7.4.3+。 参见任务T246594以获取更多信息。
自1.39.0版本起,MediaWiki支持PHP 8.0及以上版本。 MediaWiki 1.35.x等发行分支可以基本运行在PHP 8上,但可能会遇到小问题和警告。 参见T248925以获取更多信息。
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 master
 8.1.0+
 8.0.0+
 7.4.3+
 7.3.19+ 
 7.2.x 
 7.1.x 
 7.0.x 
 5.6.x 
 5.5.9+ 
 5.5.0–5.5.8 
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 master
 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 master

資料庫

MediaWiki兼容不同种类的数据库服务器。建议使用MySQL或MariaDB。

不建議使用任何其他數據庫軟件進行生產使用。支持不同於MediaWiki版本和MediaWiki版本,範圍從可疑到穩定。 MediaWiki為PostgreSQL和SQLite提供了數據庫抽象層,這些層通常会得到得到良好的维护。

MediaWiki 1.36 起,MediaWiki 仅支持从两个长期支持(LTS)版本前或更新的版本升级到当前版本。(另请参阅 phab:T259771) 从更老版本的 MediaWiki 升级至新版本需要分步进行。 例如从 1.34 或更早的版本升级到 1.41 时,首先要升级到1.35 (或 1.39),然后从 1.35 (或 1.39) 升级到 1.41。
1.34 起,我们不再支持 手册:Oracle 手冊:Microsoft SQL Server
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 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 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 master

升级

MediaWiki 1.36 起,MediaWiki 仅支持从两个长期支持(LTS)版本前或更新的版本升级到当前版本。(另请参阅 phab:T259771) 从更老版本的 MediaWiki 升级至新版本需要分步进行。 例如从 1.34 或更早的版本升级到 1.41 时,首先要升级到1.35 (或 1.39),然后从 1.35 (或 1.39) 升级到 1.41。

網頁服务器

MediaWiki與所有可以調用兼容版本的PHP的主要Web服務器廣泛兼容。 Apache是最多使用且最被测试过的。 Nginx也是不錯的選擇。

MediaWiki的扩展和皮肤

只要正確維護扩展皮肤(您可以在描述頁面的信息框頂部看到),扩展和皮肤的主分支應與MediaWiki的主分支兼容。 為了確定與較早的MediaWiki版本的兼容性,扩展和皮肤使用以下几种常用策略:

  • master(关键词:master):扩展和皮肤程序的master分支与MediaWiki的当前版本和较旧版本兼容。 必要时,向后兼容性志愿者会添加到扩展和皮肤的源代码中。
  • 发行分支(关键词:rel):对于每个MediaWiki版本,扩展和皮肤名中都有一个对应的分支。 因此,例如,如果您使用MediaWiki 1.41,则应使用扩展和皮肤名的REL1_41分支。
  • 长期支持发行分支(关键词:ltsrel):对于每个长期支持的MediaWiki发行版本(参见版本生命周期发行方针),在扩展和皮肤中都会有一个对应的分支。 因此,例如,如果您使用MediaWiki 1.39,您应当使用REL1_39分支的扩展。 如果您使用的版本為非长期支持(LTS)版本,通常情况下您需要使用前一个LTS版本分支的扩展和皮肤。 举例来说,使用MediaWiki 1.34的wiki通常使用REL1_31版本分支的ltsrel扩展和皮肤。 然而,我们不提供兼容性的保证。

Extension 信息框中的兼容性策略字段说明了给定的扩展所使用的策略。请使用上述相应的關键字来指定信息。

某些扩展可能具有更具体的兼容性策略,舉例:

浏览器

基本信息

每个网页都以基本模式启动,在该模式下仅有呈现HTML。CSS可以被认为對视觉读者獲得成效而应该用于展现。现代层定义了用客户端JavaScript所编写的可选增强功能和互動。包括在现代浏览器中,该层可能无法加载、可能较晚加载、或可能根本不加载。这取决于各种情况。要了解更多信息,请参阅MediaWiki工程指南

「现代」层的JavaScript的必需內容是通过启动模块中的功能测试來实现的,其灵感来自于"切芥末(如期待的那麼好)"的方法。

世界上不同种类的浏览器與浏览器兼容設備的数量不断在增长。 数量多到無法每一個都积极地测试與支持。 为了指引我们在浏览器支持方面的实践,我们定义了三个支持的等级。 每个等级代表不同类别的浏览器。

实际上,浏览器等级之间唯一的区别是我们在测试和支持方面的投入。所有浏览器都会收到相同的服务器响应,浏览器如果通过了所需的JavaScript能力要求的話,就会尝试去加载现代层。

A级

A級浏览器可获得最高级的支持。MediaWiki在为旧版浏览器提供了优美的回退的同时,也善用了现代浏览器的能力。开发的新功能必须能在这些浏览器上运行(无论是否是以降级的形式)。

此类别的浏览器眾所周知(如下列出),一路往前积极测试、然後滿足了「现代」层的要求。用户在这些浏览器中发现的问题将被优先解决。

C级

C级浏览器必须获得 MediaWiki 平台的核心功能。 我们的HTTP响应兼容於这些浏览器(例如,我们依赖的HTTP功能、字符编码、和内容使用的图像格式,必须能在这些浏览器中工作)。 在前端,这意味着内容是以人类可读的方式呈现,且内容與账号的動作可以正常进行,但JavaScript的功能或许可以或许不能正常工作。

在这分类中的浏览器是已知的(如下所列),且是很少测试。用户在这些浏览器中发现的问题会被高度优先处理。不过,缓解措施的重点可能是在确保可用的功能不被破坏;如果从产品角度来看是可以接受的話,这可能会导致受影响的增强功能被禁用(无论是否暂时禁用),而不是在这些浏览器中恢复。

X级

所有其他浏览器皆被称为「X级」。

MediaWiki处理这些浏览器的方式与处理A级和C级浏览器的方式相同:没有用户代理过滤器,如果这些浏览器通过了「现代」层的功能测试,就会获得JavaScript增强功能。

不属于任何其他类别的浏览器都属于这一分类,包括:

  • 基于或衍生於已知现代浏览器的不太流行的浏览器(例如三星浏览器UC浏览器Vivaldi、及Iceweasel)。
  • 现代浏览器的测试版。如果我们尚未对这些浏览器进行测试,则将其视为X级浏览器。将这些浏览器视为可用浏览器可确保在这些浏览器中获得最佳用户体验,并有利於串流测试。
  • 不再开发或维护,且不兼容於现代互联网标准的浏览器或浏览器版本。 它们可能会遭受「基本」模式的對待,或者甚至无法连接到网络服务器。

根据这一原则,新浏览器和不断发展的浏览器的用户将有机会获得现代化的体验。

不够流行的浏览器,不足以证明软件开发增加的维护成本是合理的;仅与这些浏览器相关的问题会被赋予低优先级

浏览器支持矩阵

桌面版

上述的原则和不同等级同樣适用于MediaWiki核心和扩展。下面的浏览器支持矩阵将这些等级应用于MediaWiki核心、维基媒体基金会基础设施以及任一個决定遵循它的MediaWiki扩展。各个扩展可能有自己的支持矩阵,以在不同级别的支持中分发浏览器。另请参阅浏览器使用情况细分仪表板

浏览器支持矩阵 截至2023年4月 · ·
浏览器 Chrome Opera Edge 传统Edge Firefox Internet Explorer Safari iOS Android
现代 (A级) 近三年的版本 (2021) 近三年的版本 (2021) 11.1+ (2018) 11.3+ (2018) 5+ (2014)
基本 (C级) 31+ (2013) 18+ (2013) 79+ (2020) 12+ (2015) 39+ (2014) 11 (2013) 9.1+ (2015) 9+ (2015) 5+ (2014)[note 1]
未知 (X级) 所有其他浏览器
Practical implications 截至2024年2月
Platform Minimum OS or device Supported modern browser
Android Moto G (1st generation) (2013)
Google Nexus 4 (2012)
Android 5.1, Chrome 88+
Samsung Galaxy S5 (2014) Android 6.0, Chrome 88+
iOS iPhone 5s (2013) iOS Mobile Safari 11.3 - 12 (2018-2023)[note 2]
Linux Debian 10 Buster (2019) firefox-esr 102, chromium 90
Ubuntu 18.04 LTS (2018) firefox (current), chromium-browser (current)
macOS OS X 10.9 Mavericks (2013-2016) Firefox 78 ESR (2020). The default Safari 7 is unsupported.
macOS 10.13 High Sierra (2017-2020) Safari 11.1, current Firefox, Chrome 88+
macOS 10.15 Catalina (2019-2022) Safari 13.1, current Firefox, Chrome 88+
Windows Windows 7 (2009-2020) Edge 84+, current Firefox, Chrome 88+

变更列表(时间越近越靠前):

  • 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

移动

维基媒体基金会的网络团队采用更严格的支持矩阵,用于特定于移动设备的皮肤,例如Minerva 和/或设计仅用于在移动设备上运行的扩展程序,例如移动前端 。 支持矩阵是根据分析用户代理细分仪表板提供的数据编译的。 浏览器使用率超过5%时,會支持现代体验(A级)。 在过去的12个月内提供超过0.1%的任何基本支持(C级)。 在移动设备中,我们努力提供B级。B级用户可能会也可能不会获得JavaScript,并且我们的测试水平未达到A级,因此我们将错误修复的优先级降低了。 支持MobileFrontend的现代浏览器的列表请看.browserlistsrc

列表中未包含的内容或较旧的内容都被视为基础支持的浏览器。

參見

注释

  1. Note this refers to the stock Android browser. For Chrome for Android, provided that you're running Chrome 31+, it requires Android 4.0+(2011).
  2. iOS 11 dropped support for iPhone 5 and older devices

參考資料