对于 Joomla 4.4.x 到 5.x 来说,好消息是,这是一次升级,而不是迁移。为什么?两个主要原因:
- 已删除所有代码弃用并使用最新 Joomla 代码的 Joomla 4 (J4) 扩展将在 Joomla 5 (J5) 中运行
- 大多数其他 Behavior - Backward Compatibility 插件已启用
此文档通过将规划和分步合并到一个文档中来反映更简单的过程。不过,你还是需要一些技能。请参阅自我评估,以确定您是否应该或不应该自己进行升级。
规划 4.4.x 到 5.x
托管/技术规格
1. 确定您的托管环境是否满足要求。
如果您的服务器环境不满足最低技术要求,您将无法升级到 Joomla 5。升级选项不会显示在 Joomla Update 组件中。
- 菲律宾语 8.1
- MySQL 8.0.13 版本
- MariaDB 10.4.x(测试表明 J3、J4 和 J5 与 MariaDB 10.4.x 兼容)
- PostgreSQL 12.0 版本
您可以在 Joomla 4 站点中点击系统 -> 系统信息来检查您的系统信息。如果您的服务器不符合要求,请联系您的托管服务提供商。
以下是满足技术要求的环境示例。它显示了 MySQL 8.0.34、PHP 8.1 和 Joomla 4.4.x。
2. 检查你所有的扩展是否与 Joomla 5 兼容
此升级有许多第三方扩展方案。
- 该扩展可能与 J4 和 J5 兼容,而无需使用向后兼容插件。
- 通过使用向后兼容插件,该扩展可以与 J4 和 J5 兼容。
- 该扩展在 J5 中似乎可以工作,但当您尝试使用它时,它已损坏。
- 扩展可能会破坏整个网站。
不用担心!这并不像听起来那么糟糕!首先,我们来谈谈向后兼容插件。
向后兼容性插件
Behaviour - Backward Compatibility 插件是允许第三方扩展使用 Joomla 5 中不再包含的类的尝试。
当从 J4.4.x 升级到 J5 时,向后兼容插件将自动启用。新安装的 J5 向后兼容插件将默认启用。
支持在 J4 中运行的扩展的向后兼容插件将通过 J5 实现。在 J6 中,J4 扩展不会向后兼容插件。这给了扩展开发人员额外的两年时间来使他们的扩展在没有向后兼容插件的情况下与 J5 兼容。目的是在每个生命周期版本中,向后兼容插件将支持它之前的生命周期,直到它之后的生命周期。
你能在 J5 中禁用向后兼容插件吗?好问题。在确定您的每个第三方扩展都符合要求且功能齐全且未启用向后兼容性插件后,您可以禁用向后兼容性插件。也就是说,我们建议您谨慎使用。在禁用向后兼容插件之前,建议执行以下两项操作之一:
- 在开发/测试站点上执行此操作。这样,如果您不小心错过了一个使您的后端无法访问的扩展,它不会使您的生产站点瘫痪。
- 确保您有权访问 db。这样,您可以根据需要快速再次启用该插件。更多相关信息见下文。
更新前检查与 System -> Manage Extensions
从理论上讲,更新前检查会告诉您第三方扩展是否与 J5 兼容。但是,仅当所有扩展开发人员都已使其扩展反映与其扩展的兼容性时,更新前检查才有用。在理想情况下,更新前检查的 Extensions 部分会告诉您扩展是否:
- 可以在不启用向后兼容插件的情况下升级
- 可以在启用向后兼容插件的情况下进行升级
- 如果在从 J4 升级到 J5 之前需要更新扩展
- 如果扩展完全不兼容
测试表明,兼容和不兼容的扩展之间存在差异。这不是更新前检查组件的问题。相反,扩展开发人员通过其扩展发送信息,这些信息将正确填充更新前检查。如果他们的扩展没有被编码来告诉更新前检查正确的信息,那么更新前检查和Joomla!Project 可以解决这个问题。一个很好的信息来源是第三方扩展开发人员的网站,以验证在从 J4 升级到 J5 期间应如何处理特定扩展。
下图显示了 Extensions 部分的 Joomla 4.4.x 中更新前检查组件的示例。
顶部将显示需要更新的扩展。请转到 系统 -> 更新 -> 扩展并更新您的扩展。
中间部分显示扩展开发人员无法获得更新信息的扩展。如果不测试它们或联系开发人员,您将无法知道这些是否兼容。
底部部分显示不需要更新的扩展。这意味着这些扩展告诉 Joomla 它们与 Joomla 5 兼容。没有指定他们是否需要向后兼容插件。
请注意,这些扩展不是 Joomla 项目的首选。这些扩展仅作为示例显示。他们是从 JED 中随机挑选的作为测试。
建议仅使用更新前检查组件的 Extensions 部分作为极高级的概述,而不是 100% 的事实来源。换句话说,您可能无法信任更新前检查组件,具体取决于您使用的扩展。
那么,真理的来源是什么呢?系统 - > 管理扩展
在 Extensions: Manage 屏幕中,您将能够看到您在网站上使用的所有第三方扩展。在下面的屏幕截图中,您可以看到主屏幕。在 Author (作者) 列中,您可以在多行中看到常用扩展开发人员的姓名。您还可以在多行中看到 Joomla 项目的 Author 。
检查您的第三方扩展。接下来,您将确定它们是否与 J5 兼容(带或不带向后兼容插件)。否则,升级将不成功。
检查第三方扩展是否与 J5 兼容的三种方法
- 查看开发者网站。
- 备份/复制您的 J4 站点,在子域上恢复它,打开调试,按照下一步(如下)升级到 J5。看看是否有任何故障。如果它确实中断,请禁用每个引发错误的扩展,以记下该扩展。您需要联系开发人员,因为它与 J5 不兼容。
- 在子域上安装一个干净的 J5 包,启用 Behaviour - Backward Compatibility Plugin,安装您使用的所有扩展,看看它们是否有效。
注意:Joomla!扩展目录 JED 将为使用或不使用向后兼容插件的扩展显示 Joomla 5 兼容徽章。
您可以结合上述方法。从全新安装开始并测试您的扩展。当您知道哪些有效或无效时,您可以与开发人员合作,了解他们对 J5 的开发进展。然后,一旦您的所有扩展都在一个干净的站点中工作,您就会知道您可以测试从 J4.4.x 到 5.x 的完整升级。
你可能想要确定扩展是否在未启用向后兼容插件的情况下工作。如果是这种情况,您将需要访问数据库。计划它。确保您有权访问数据库。
安装 J5 后,将启用向后兼容插件。您必须禁用它。转到“插件”,按“行为”类型过滤并禁用“行为 - 向后兼容性”。一次安装一个扩展。如果它杀死了你的网站,请通过数据库启用向后兼容性插件。
Backward Compatibility Plugin 可以在数据库的 _extensions 表中找到。它被称为 plg_behaviour_compat。将 Enabled 字段设置为 0 以禁用插件。1 启用插件。通过再次启用向后兼容插件,您可以再次访问 Joomla 的后端(只要该扩展与向后兼容插件一起使用)。
或
您可以在数据库中禁用该扩展,以便继续测试其他扩展,以查看它们在未启用兼容性插件的情况下是否能正常运行。这些条目将位于 #_extensions 表中。您需要将 Enabled 字段更改为 0 以禁用扩展。
在某些情况下,当您在 J5 中安装不兼容的扩展时,无论是否启用向后兼容插件,您需要在数据库中找到该扩展的条目(可能有几个或多个)并禁用它们,直到您可以重新获得对后端的访问权限。这些条目将位于 #_extensions 表中。您需要将 Enabled 字段更改为 0 以禁用扩展。一旦您可以再次访问 Joomla 的后端,您就可以从 System -> Manage -> Extensions 中正确卸载它并咨询开发者。
Cassiopeia、Recaptcha、Weblinks、Schema.org 和 Search(com_search不是智能搜索)
仙后座
Cassiopeia 仍将是 Joomla 5 的前端模板。您的自定义应该没问题,但我们仍然建议您在开发站点上进行测试以确保。Bootstrap 将在 Joomla 5.3.4 中升级到 Bootstrap 4.0。如果您的模板中存在 Bootstrap 差异,则它们已在 4.4.0 中可见。因此,大多数(如果不是全部)问题都会在升级到 J5 之前被发现。
谷歌 reCAPTCHA
如果您在 J4 中使用 Google reCAPTCHA,您应该在升级到 Joomla 5(或第三方解决方案)之前将其替换为 Invisible reCAPTCHA。J5 将不再包含 Google Recaptcha。升级到 J5 后,将卸载 Recaptcha 插件。如果您已从 4.4.x 升级,则 Invisible reCAPTCHA 插件仍然存在。您可以启用它并使用新密钥进行设置,以便您可以改用 Invisible reCAPTCHA。或者您可以使用其他第三方解决方案。全新安装的 Joomla 5.x 在核心中不包含任何 reCAPTCHA 插件。全新安装的 Joomla 5.x 需要使用第三方插件/解决方案。
com_weblinks
Weblinks 扩展可以在 J5 中运行,而无需在 4.3.0+ 版本中启用向后兼容插件。4.3.0 在 Github 上。JED 上的 Web 链接。
Schema.org 插件
与 Joomla!5 实施了一种新的、更动态的处理丰富网页摘要(基于 https://schema.org/)数据的方法。默认情况下,它们的设置方式与搜索引擎的信息与 Joomla 4 中的相同,但要自定义输出,请转到 System => Manage => Plugins 并搜索系统插件 “System - Schema.org”。编辑插件以添加您的站点信息,以便正确使用该功能。在这篇杂志文章中阅读有关 Rich Snippets 的更多信息。
com_search
com_search 在 Joomla 5 中不可用。在升级到 Joomla 5 之前卸载它。您现在将使用智能搜索 (com_finder)。
试运行
作为规划的一部分,建议在子域或本地测试升级,以确定其运行良好。确保您跟踪为完美进行升级所需采取的任何步骤。
在子域或 localhost 上测试了升级并且它运行良好后,您可以备份生产站点并对其进行升级。分步说明如下。
逐步升级
您要升级的网站必须满足所有技术要求,并运行 Joomla 4.4.x 才能升级。如果您的网站尚未运行 Joomla 4.4.x,请先更新到 4.4.x,然后再升级到 J5。
1. 在升级之前,请按照 Planning 部分(上文)中的所有说明进行操作。
2. 备份您的网站。
3. 更新任何需要更新的扩展。
4. 禁用或卸载任何与 J5 不兼容的扩展。
5. 如果您使用的是旧的搜索组件 (com_search) 或任何相关模块,请在升级之前将其卸载。
6. 如果您使用的是 Google reCAPTCHA,请禁用它并开始使用 Invisible reCAPTCHA。
7. 打开调试(全局配置 - >系统选项卡 - >调试系统设置设置为是)。
8. 再次备份您的网站。
9. 测试您的备份以确保其恢复。(是的,执行此操作。你会感觉好些。
10. 转到系统 -> 更新 -> Joomla
11. 单击右侧顶部工具栏中的选项。
12. 将更新频道更改为 Joomla Next
13. 点击顶部工具栏中的保存并关闭。
14. 如果您的服务器符合技术规范,您将在左侧边栏上看到以下屏幕,其中包含 Required Settings(必需设置)、Recommended Settings(推荐设置)和 Extensions(扩展)的链接。
15. 您的“必需设置”和“推荐设置”很有可能没问题,因为如果您的环境不满足技术要求,则不会显示此屏幕。扩展可能不好。请参阅 Planning(上文)中有关更新前检查的部分,以及为什么它可能没有绿色对勾标记,但仍具有所有兼容的扩展。你已经完成了测试(对吗?),所以你已经知道它们是否兼容。
16. 从 Joomla 4.4.x 升级到 5.x 期间,将启用向后兼容性插件。
17. 如果您尚未按照 Planning(上述)中的说明进行试运行,请立即停止并返回 Planning 部分并按照说明进行操作。规划是此次升级中最重要的部分。
18. 一旦您确定所有扩展都与 J5 兼容并且您已经测试了升级并且结果非常完美,您可以勾选按钮以确认有关可能不兼容的扩展的警告并继续更新,单击弹出框中的确定,然后单击更新按钮。
19. 然后,您的网站将再次要求您确认您已进行备份(您有备份并且测试了它恢复)。
20. 您的站点将执行到 J5 的升级。
21. 升级成功后,将显示如下屏幕
22. 您将在屏幕右上角看到您的网站是 Joomla 5。
23. 测试您网站的前端。
24. 测试您网站的后端。
25. 在系统 > 全局配置 - >服务器选项卡中关闭调试。
26. 如果需要,修复您的新智能搜索。
27. 按照本文档的规划区域中所述设置架构插件。
28. 享受一杯美酒,惊叹于你是多么的美妙。
如果出错怎么办?
如果您事先测试了所有内容,则不应如此。但是,在测试和升级之间,环境中的某些内容可能发生了变化,或者扩展中的某些代码发生了变化。
由于您在开始之前启用了 Debug,因此您应该能够看到导致问题的扩展并禁用它(如果您无法再访问后端来禁用它,则可能需要从数据库中执行此操作)。这样,您的网站将启动并运行,同时您找出问题所在并修复它。
最坏的情况是,恢复您的备份,以便您有时间解决测试环境中发生的情况。
Database Fix 可能会解决您的一些问题。导航到 System Dashboard 并单击 Database 。
在 Maintenance: Database 页面中,它将显示您的网站可能存在的任何数据库结构问题。勾选相应的复选框,然后单击顶部工具栏中的 Update Structure 按钮。