Drupal 10、Umbraco 13 和 Kentico Xperience 13 生命周期结束:2026 年 12 月之前该做什么

三个广泛使用的内容管理系统版本,将在大约三周之内相继失去支持:
- Drupal 10:2026 年 12 月 9 日生命周期结束。
- Umbraco 13:2026 年 12 月 14 日生命周期结束。
- Kentico Xperience 13:从 2027 年 1 月 1 日起停止所有支持,包括安全修复。
这些日期到来时,什么都不会被关掉。12 月 10 日,一个 Drupal 10 站点提供页面的方式和 12 月 8 日完全一样,编辑人员照常发布内容。停止的是安全修复的供应。从那时起,在您所用版本中发现的漏洞会一直敞开,除非有人替您修补。
撰写本文时是 2026 年 10 月 3 日,离前两个日期大约还有十周。对于维护良好的 Drupal 或 Umbraco 站点,这足够了。对于 Kentico 13 的重建,这不够。
本文真正写给谁
工作量最重的,是带有自定义代码的站点:自定义 Drupal 模块和主题、自定义 Umbraco 属性编辑器和仪表板、Kentico 小部件和集成,以及任何由后来已不再合作的外包公司开发的东西。
如果您的 Drupal 站点接近标准安装,只用了流行的贡献模块,升级基本上是机械性的工作,您的托管合作伙伴可能已经排好了时间。向他们问一下日期。
如果您运行 Umbraco 13 并购买了延长支持(见下文),12 月对您来说就不是悬崖,而是一个您花钱推迟了的补丁截止日。
Drupal 10:2026 年 12 月 9 日结束
结束的是什么
项目自己的声明很简短:“Drupal 10 将于 2026 年 12 月 9 日到达生命周期终点。”Drupal 10.6 是最后一个次要版本,发布时间表说明,该日期之后不会再发布任何 Drupal 10 版本。
在 2026 年 9 月 20 日那一周,drupal.org 的使用统计在 524579 个报告站点中,统计到 221417 个站点在 Drupal 10 分支上,210728 个在 Drupal 11 上。大约每十个报告的 Drupal 站点中就有四个,当前版本只剩十周。其中 21148 个仍在 Drupal 10.0、10.1 或 10.2 上,这意味着要先多走一步。
升级涉及什么
官方的 Drupal 10 到 11 升级指南可以拆分为几项工作:
- 先处理托管环境。 Drupal 11 需要 PHP 8.3.0 或更高版本。Drupal 10 在 PHP 8.1 和 8.2 上运行得很好。PHP 8.1 已经不再受支持,PHP 8.2 的安全支持将于 2026 年 12 月 31 日结束。如果您的服务器运行其中任何一个,先升级 PHP,并把它作为一项单独测试的工作。
- 升到 Drupal 10.3.0 或更高版本。 10.3.0 之前的核心更新在 Drupal 11 中已被移除,所以 10.2 上的站点不能直接跨过去。
- 处理被移除的核心模块。 Actions UI、Activity Tracker、Book、Forum、Statistics 和 Tour 已从 Drupal 11 核心中移除。如果您在用其中某个,就在代码升级之前、仍处于 Drupal 10.3 或更高版本时,停用它或改用它的贡献模块版本。
- 移植自定义代码。 Upgrade Status 模块会显示您的代码和贡献模块哪里还没准备好。Drupal Rector 会自动改写许多已弃用的 API 调用;其余的手工完成。对于一个积累了多年自定义模块的站点,时间就花在这里。
- 检查每一个贡献模块。 每个模块都需要一个与 Drupal 11 兼容的版本。如果没有,指南会指向该模块问题队列中的补丁,或指向 Lenient Composer 端点。以这种方式带过去的每一个模块,都是您从此要自己承担的维护。
- 工具。 您需要能使用 Composer 和 Drush 的命令行访问权限,以及一份所有自定义脚手架文件的记录,以便它们在升级后得以保留。
要不要等 Drupal 12?
不要。Drupal 12.0.0 计划在 2026 年 12 月 7 日那一周发布,也就是 Drupal 10 安全支持结束的同一周。在您当前版本到期的那一周发布的一个 .0 版本,算不上计划。Drupal 11.4 在那一周之后仍会继续获得安全修复,而 11.5 会与 12.0 同时发布。现在就迁移到 11,明年再考虑 12。
Umbraco 13:2026 年 12 月 14 日结束
结束的是什么
Umbraco 13 是一个长期支持版本。根据 Umbraco 的支持生命周期页面,它自 2025 年 12 月 14 日起已进入安全阶段(只提供安全修复),并将于 2026 年 12 月 14 日到达生命周期终点,此后 Umbraco 表示它“不再被推荐使用”。
在这之下还有第二个日期。Umbraco 13 运行在 .NET 8 上,而微软将于 2026 年 11 月 10 日结束对 .NET 8 的支持。您的站点所依赖的运行时,比 CMS 早一个月失去支持。
升级涉及什么
Umbraco 的规则是:先迁移到最近的长期支持版本,再迁移到最新版本。Umbraco 13 本身就是 LTS 版本,所以目标是下一个 LTS,即 Umbraco 17。它于 2025 年 11 月 27 日发布,将于 2027 年 11 月 27 日进入安全阶段,并于 2028 年 11 月 27 日到达生命周期终点。它运行在 .NET 10 上。
难的那一步在中间。Umbraco 14 彻底替换了编辑界面,各版本升级说明用一句话概括了这一点:“AngularJS 已移除:一个用 Web Components 和 Lit 构建、由 Umbraco UI Library 驱动的全新后台。”
在实践中,这意味着:
- 每一处后台定制都要重写。 在 Umbraco 13 中,自定义属性编辑器、仪表板、自定义区块和各种扩展包的界面部分都是 AngularJS。这些都带不过去;要以 Web Components 的形式重建。
- 属性编辑器被一分为二,分为服务器端部分和客户端部分,这改变了自定义编辑器的结构方式。
- 有些编辑器没有了。 Nested Content、Grid 布局和旧版 Media Picker 已被移除。Umbraco 推荐用 Block List 或 Block Grid 替代。这既是代码工作,也是内容工作:用这些编辑器构建的页面,其保存的内容需要转换。
- 宏被移除了。 Umbraco 建议改用富文本编辑器中的分部视图或块。
- XPath 被移除了,替代方案包括 Dynamic Roots。
- 扩展包需要有 Umbraco 17 版本。一个被弃置的扩展包,意味着要找替代品或者重写。
Umbraco 的建议是离线升级、全面测试,然后在每个环境上执行升级。尽早让编辑人员参与测试:他们每天使用的后台,外观和行为都会不一样。
面向公众的模板通常比后台变化少,除非它们渲染 Nested Content、Grid 或宏。在您的视图中搜索这三样东西,是快速衡量工作量的第一步。
争取时间:XLTS
Umbraco 为 Umbraco 10 及以后的 LTS 版本(包括 13)出售延长长期支持(XLTS)。您可以选择 6 个月、12 个月或 24 个月,保障从生命周期结束后的第二天开始。它只涵盖安全补丁,功能集冻结。您向 Umbraco 购买(合作伙伴通过其合作伙伴经理购买),页面上没有公布价格。
当自定义编辑器的重写无法在 12 月 14 日之前妥善完成时,XLTS 是合理的。把它当作推迟决策的方式,就没那么合理了,因为明年重写的成本是一样的。而且它修补的是 Umbraco,而不是运行时:无论如何,.NET 8 的支持都会结束。
Kentico Xperience 13:2027 年 1 月 1 日结束
结束的是什么
Kentico 13 已经处于缩减支持阶段。在整个 2026 年,Kentico 发布的版本“仅以安全热修复的形式”提供。然后,根据 Kentico 的支持生命周期:“自 2027 年 1 月 1 日起:我们将停止与 Kentico Xperience 13 相关的所有支持、维护、更新、发布、热修复、补丁、修复(包括安全修复)以及任何其他服务。”
没有列出任何延期选项。后继产品是 Xperience by Kentico,Kentico“按双方商定的条款”提供。这是一次新的许可谈判,而不是一次版本升级。
迁移涉及什么
Xperience by Kentico 是另一款产品,而 Kentico Migration Tool 对自己的局限说得很坦白:“该工具只迁移数据模型和内容。不支持代码迁移。”
根据其文档,它会迁移:
- 页面类型变成内容类型。页面变成网站渠道页面或可复用内容项。
- 分类(categories)变成分类法(taxonomies)。
- 媒体库及其文件、Page Builder 内容和自定义页面模板(来自 Kentico 13)。
- 编辑用户和角色、联系人和活动、同意记录。
- 自定义模块类及其数据,以及自定义表(作为模块类或内容项)。
它不会迁移:
- 代码和定制。 控制器、视图、小部件代码、集成、计划任务。获取页面的代码必须针对内容项重写。
- 表单自动回复和通知邮件。 这些需要手工复制过去。
- 营销自动化和静态联系人组。
- 宏(迁移后将无法工作)和页面权限。
- 保存在 Azure Blob Storage 或 Amazon S3 中的媒体。 该工具只从本地文件系统读取媒体。
有两个实际要点。源系统必须是 Kentico 13 Refresh 5(热修复 13.0.64)或更高版本,所以先确认这一点。另外,迁移可以多次运行,并支持内置和自定义的数据转换,因此您可以在正式切换之前反复演练、完善映射。
直说就是:内容能保留下来,内容周围的网站要重建。这是一个以月计的项目,而在 10 月 3 日,离 1 月 1 日只有十三周。大多数 Kentico 13 站点将在一段时间内处于无补丁状态。与其事后发现,不如提前规划好这段时期。
既然代码无论如何都要重建,就有理由问一问:Xperience by Kentico 和其他平台相比,哪个更合适。留下来有一个明显的优势:一个专为您的内容模型打造的迁移工具。让这成为一个决定,而不是一个默认选项。
无补丁运行到底意味着什么
站点会继续运行。风险换了一种形态:
- 下一个漏洞会一直敞开。 受支持的版本会持续发布修复,其安全公告也是公开的。当一个在新版本中修复的缺陷同样存在于您的版本中时,公告就等于告诉攻击者该往哪里看。
- CMS 周围的技术栈在老化。 PHP 8.2 将于 2026 年 12 月 31 日失去安全支持。.NET 8 将于 2026 年 11 月 10 日失去支持。贡献模块和扩展包很可能会停止针对无人支持的版本进行测试。
- 审计时的答案变了。 如果您的安全策略、网络保险问卷或公共部门合同问到您的软件是否受支持,诚实的回答就变成了否。
如果您必须在一段时间内无补丁运行,就要减少暴露面:把管理界面放到 VPN 或 IP 允许列表之后,移除不用的模块,加上 Web 应用防火墙,测试备份,并阅读厂商针对新版本发布的安全公告。这些措施能缩小风险,但不能代替补丁。
如何决定
- Drupal 10,主要是贡献模块: 升级到 Drupal 11。如果本月开始,十周足够。
- Drupal 10,自定义代码很多或 PHP 托管环境老旧: 先解决托管环境,再移植代码。如果会超期,就按上面的加固措施规划一个短暂的无补丁窗口。
- Umbraco 13,后台定制很少: 升级到 Umbraco 17。
- Umbraco 13,有自定义编辑器、Nested Content 或 Grid: 购买 6 个月或 12 个月的 XLTS,把重写做好。
- Kentico 13: 现在就启动迁移项目,为 1 月加固当前站点,并根据实际情况决定目标平台。
- 本来就要改版: 让生命周期结束成为契机,不要移植您马上就要扔掉的代码。如果模板要重建,这也是修复无障碍问题成本最低的时机;我们的《欧洲无障碍法案》指南介绍了这对网站意味着什么。
从今天开始的时间表
10 月中旬之前。 盘点每个站点:确切的 CMS 版本、PHP 或 .NET 版本、自定义模块、编辑器和小部件,以及每个贡献模块或扩展包的兼容性。Drupal 上运行 Upgrade Status。Kentico 上确认热修复版本为 13.0.64 或更高。
10 月底之前。 逐个站点做决定:升级、争取时间还是重建。如果需要 XLTS,就开始采购,因为保障从生命周期结束后的第二天开始。
11 月。 Drupal:把托管环境迁到 PHP 8.3,在预发布环境升级并测试。Umbraco:迁移到 .NET 10,升级一份副本,重写自定义编辑器,转换 Nested Content 和 Grid 内容。Kentico:实施加固措施,并进行第一次迁移演练。
11 月下旬至 12 月上旬。 生产环境升级,在 12 月 9 日和 14 日之前留出缓冲。如果您的组织在假期前冻结变更,要把这一点考虑进去。
2027 年 1 月。 Kentico 站点在加固状态下运行,同时迁移继续进行。
从哪里获得帮助
这类工作正是我们在做的:审查接手站点上有哪些自定义内容、移植 Drupal 模块、把 Umbraco 后台扩展重写为 Web Components,以及重建迁移工具留下的代码。这些工作属于我们的遗留系统维护服务;如果要考虑重建,我们的网站无障碍整改服务负责那一部分。
如果这些日期中有一个是您的,而您又不确定底层都有些什么,请写信到 office@c9group.dev。