如何将Drupal7、Drupal8、Drupal9升级到Drupal10

Drupal 10于2022年末发布。Drupal10新版本对用户来说更安全、更方便,当您升级到Drupal10后,将越来越。

在本指南中,您将学习如何将您的网站从Drupal 7、Drupal 8或Drupal9 升级到Drupal 10

重要提示:只有当您从Drupal7、Drupal8或Drupal9升级到Drupal10时,本文中的所有建议才适用。

如何将Drupal7、Drupal8、Drupal9升 级 到Drupal10

一、迁移到Drupal

通常,迁移是将数据从一个源移动到另一个源的过程。源可以是数据库(DB)或CSV和XML类型的文件。

在Drupal的情况下,有一个源数据库(Drupal7数据库)和该数据必须传输到的数据库(Drupal 10数据库)。从图中可以看出,在传输过程中需要执行几个操作。

1、数据采集。查询系统允许从源数据库中检索数据。

2、映射。在这个阶段,您需要定义源库的哪个字段需要转移到目标库的哪个域。

3、处理。此操作允许我们修改从源数据库检索到的数据。例如,我们可能需要更改接收到的数据的格式,使其符合Drupal10中的新结构。

4、实施。实施是将数据插入Drupal10数据库结构的目标对象中。

二、为什么要升级到Drupal10

1、升级Drupal版本对网站的安全至关重要。以下是成都长风云的一个例子:一家事业单位联系了我们,上级扫描到他们网站有很多的漏洞,要求他们立即关闭网站,进行升级,升级完成后再次进行扫描,通过后才能上线。对于一个运行在过时的CMS版本上的网站来说,这是不可能的,因为它有很多漏洞。

2、Drupal的较新版本运行在PHP8及更高版本上。PHP的后续版本保证了资源的速度和安全性——这两个参数是用户最欣赏的。此外,大多数主机只支持PHP8及更高版本。

3、等待升级的时间越长,将来升级网站的难度就越大。Drupal7和其他版本的CMS之间存在差距,因为版本7有完全不同的代码库。在任何情况下,你都必须进行网站迁移,但很难找到能胜任这项工作的专家。

4、该系统的更新版本对开发人员和用户都更方便。专业人员将在新的前端主题Olivero中找到Drupal管理方面的帮助,而内容经理将在新管理面板主题Claro中找到帮助。

5、Drupal社区最积极开发的是Drupal 9和10的contrib模块。这意味着,如果您等待升级,您将错过与旧版本不兼容的新功能和模块。

6、最后,新版本的系统总是意味着更好的资源性能和对最新web开发标准的支持,这意味着为您的项目提供了稳定和最新的基础。

三、Drupal 10的好处是什么?

1、核心和模块的自动更新

开发人员不再需要编写特殊的脚本来检查出口并安装升级。Drupal 10实现了“设置并忘记”原则,简化了维护,适合没有编程经验的人。此功能对于依赖项数量有限的小型项目特别有用。

2、CKEditor 5

集成新版本的所见即所得编辑器CKEditor是核心开发人员最困难的任务之一。现在,管理员有了一个看起来很像熟悉的Microsoft Word和Google Docs的工具。当您点击所选文本或添加图像时,会弹出一个上下文气球,现在可以实时编辑内容。

3、解耦菜单

解耦菜单的功能允许前台人员更容易地将这些菜单转换为导航元素,而不是对其进行硬编码。这也意味着非开发人员将能够编辑菜单。

4、Olivero Theme
Olivero主题作为一个实验主题被引入Drupal 9.1,并从此成为一个开箱即用的前端主题。上一个主题Bartik自2011年开始使用,已经过时,不符合现代要求。Olivero为网站带来了现代设计,包括改进的排版、动画和调色板。奥利韦罗也更适合残疾人。

5、Starterkit主题生成器

Drupal主题的开发人员现在有了一个稳定的Starterkit主题生成器。以前,每个新主题都必须基于Classy主题,继承其CSS类和标记。现在Starterkit将帮助开发人员节省时间。他们将能够使用它将默认主题复制到一个新的文件夹中,并仅从中继承CSS和HTML。这将允许他们安全地更改基本主题,而不用担心影响默认主题。

五、升级到Drupal 10有多难?

1、从Drupal 7迁移到Drupal 10

Drupal7的代码库与Drupal8、9和10的代码库截然不同,这就是为什么迁移到最新版本最困难的原因。当Drupal 8创建时,开发人员彻底检修了Drupal的内部系统:Symfony组件被集成,从那时起,新CMS版本的发布就与框架的发布绑定在一起。

2、为什么你需要升级Drupal7?

Drupal 7速度较慢。Drupal 7使用了过时的PHP版本,这些版本不再提供现代资源所需的速度和安全性。

如果一个站点是在D7上构建的,这意味着它是很久以前创建的,并且积累了一些技术遗产。迁移到Drupal的另一个版本是一个摆脱这种遗留问题的机会。

许多为版本7创建的contrib模块不再开发。社区的主要关注点是Drupal 9和10。

随着Drupal7上构建的站点数量的减少,可以使用Drupal7的开发人员数量也在减少。随着时间的推移,你将越来越难以从社区获得支持或帮助。

六、从Drupal 7升级到Drupal 10的分步指南

由于从技术角度来看,Drupal7与Drupal8、9和10几乎没有共同之处,因此迁移到第九个或第十个版本意味着完全重建项目。这是安排网站重新设计、消除技术遗留问题、执行资源审计和审查构建不佳的算法的好时机。

重要提示:评估网站上使用了多少contrib模块。支持这些模块的开发人员可能还没有将它们更新为与D10兼容。如果它们为站点提供了重要功能,而您还没有准备好对其进行修补,则可以升级到D9,它已经移植了所有模块。之后,升级到D10将很容易。

步骤1:正在备份
使用MySQL创建数据库备份:
mysqldump -uyourusername -p yourdatabase > backup.sql

同时创建站点文件的备份。您可以从命令行运行“rsync”命令,也可以简单地将站点根目录的内容复制到另一个文件夹中。

步骤2:服务器和系统准备

–确保服务器符合Drupal 10的要求。例如,安装PHP 8.1或更高版本,启用您可能需要的PHP扩展,如“mbstring”、“pdo”、“json”。

–将Composer升级至最新版本:

composer self-update

步骤3:检查主要模块

您可以使用Upgrade Status 检查Drupal 10上运行的模块升级版本的可用性。它还将显示模块是否应升级。确定不推荐使用的模块用于哪些功能,以及是否有替代模块可以取代它们。

步骤4:在Drupal 10上创建网站

在最新版本的Drupal10上创建一个新网站。添加您在上一步中选择的模块。您还需要重新创建内容类型、块、多媒体文件、菜单等。复制旧网站架构的每一点都没有意义,因为您现在有机会改进页面结构并使用Layout Builder等新工具。

步骤5:自定义模块升级

我们建议尽量减少使用自定义模块。通常,升级它们意味着重写代码并使用Drupal10提供的新API。

步骤6:数据迁移

在迁移之前进行彻底的内容审核。确保您已经创建了将内容传输到新网站的所有必要结构(步骤4)。如果站点很小,您可以手动传输数据。对于大型网站,我们建议使用自动内容迁移。

步骤7:主题更新

在这个阶段,你可以重建旧的主题,根据新的设计从头开始创建你自己的主题,或者使用已经为Drupal 10创建和改编的主题。

步骤8:调试和故障排除

–使用Drush,您可以获得有关站点状态的信息,检查是否启用了必要的模块等。Drush status命令打印出有关Drupal安装及其参数的最重要信息。

–Drush允许您查看事件日志和其他有助于识别问题的日志。drush看门狗show命令在屏幕上打印日志条目。

步骤9:测试

–Selenium WebDriver或Cypress等自动化浏览器测试工具可以帮助在真实浏览器中测试网站界面。您可以设置模拟用户操作的测试场景,如鼠标单击、键入文本和查看页面内容。

–使用负载测试工具(如Apache JMeter或Gatling)验证站点性能。这允许您确定站点如何应对重负载并评估其性能。

步骤10:迁移到生产服务器

一旦您确信测试服务器上的一切都正常工作,就可以使用诸如“rsync”或“git”之类的工具将站点移动到生产服务器。

六、从Drupal 8升级到Drupal 10

对D8的支持于2021年11月30日结束;D9的更新在2023年11月之后不再发布。这意味着现在使用这些版本的系统是不安全的。但不要惊慌:从版本8迁移到版本10相对容易。
从Drupal8迁移到Drupal10是在同一代码库中切换到不同版本,因此它不像处理D7那样困难。即使对于一个复杂的网站,这也只是几个星期的问题。

从Drupal 8升级到Drupal 10的分步指南

重要提示:评估网站上使用了多少contrib模块。它们的饲养员可能没有更新它们以与D10兼容。如果它们为站点提供了重要功能,而您还没有准备好对其进行修补,则可以升级到D9,它已经移植了所有模块。之后,升级到D10将很容易。

步骤1:正在备份

在开始升级之前,请对当前网站进行完整备份,包括文件和数据库。您可以使用phpMyAdmin等工具来备份数据库。

步骤2:服务器和系统准备

–确保服务器符合Drupal 10的要求。检查您的PHP版本(建议使用PHP 8.1或更高版本),并启用所有必要的PHP扩展,如“mbstring”、“pdo”、“json”等。

–将Composer升级至最新版本:

composer self-update

步骤3:Drupal Core的升级

使用Composer将Drupal-core升级至至少9.4版本。在项目运行的根目录中:

composer update "drupal/core-*" --with-all-dependencies

步骤4:升级contrib模块和主题

当您仍在使用Drupal9时,您需要将所有contrib模块和主题更新到Drupal10兼容版本。您可以使用升级状态模块执行检查。

步骤5:自定义代码兼容性检查

使用相同的升级状态模块检查自定义模块和主题是否与Drupal 10兼容。该模块分析代码并提供更新代码的建议。

步骤6:Drupal Core的升级

编辑composer.json文件并将核心版本drupal/core-*更新为^10。

要求

"require" : {   
"composer/installers" : "^2.0"   
"drupal/core-composer-scaffold" : "^10"  
"drupal/core-project-message" : "^10"  
"drupal/core-recommend" : "^10"

除了上面提到的组件外,composer.json还可以包括drupal/core-dev和drupal/core组件。

运行composer更新后,更新将立即开始。

步骤7:数据库更新

drush updatedb

步骤8:调试和故障排除

–使用Drush,您可以获得有关站点状态的信息,检查是否启用了必要的模块等。Drush status命令打印出有关Drupal安装及其参数的最重要信息。

–Drush允许您查看事件日志和其他有助于识别问题的日志。drush看门狗show命令在屏幕上打印日志条目。

步骤9:测试

–Selenium WebDriver或Cypress等自动化浏览器测试工具可以帮助在真实浏览器中测试网站界面。您可以设置模拟用户操作的测试场景,如鼠标单击、键入文本和查看页面内容。

–使用负载测试工具(如Apache JMeter或Gatling)验证站点性能。这允许您确定站点如何应对重负载并评估其性能。

七、Drupal 9 升级 Drupal 10

Drupal 10的核心本身有一个很酷的内置升级系统,可以帮助您顺利升级到最新版本的系统。此外,版本10提供了一组现成的模块,可以节省大量的开发人员时间。


迁移到下一个版本并不像跨越几个版本那样困难,这就是为什么它被称为更新,而不是迁移。您可以在本指南中找到详细说明:从Drupal9到Drupal10的快速站点升级指南。

在Drupal团队的帮助下迁移Drupal网站

如果不是你在做这项工作,而是由Drupal开发人员、项目经理和测试人员组成的团队,那么上述升级都不会让人头疼。

八、结论

升级Drupal就像去看医生一样——乏味,但对正常生活来说是必要的。在准备新版本时,Drupal开发团队会识别新的漏洞并开发补丁进行修复。更新后的Drupal确保网站与网络开发的最新标准兼容,从而使网站在不同的设备和浏览器上正确显示。此外,系统的每次升级都会带来新功能,并提高站点性能。

没有人可能会反对这样的更新。虽然它看起来更像是一部关于未来的电影的剧本,但升级你的Drupal版本。