与来自旧 moodle 平台的用户建立新的 moodle 平台

Setting up new moodle platform with users from an old moodle platform

我设置了一个 Moodle 平台,它应该与另一个服务器上 运行 的旧 Moodle 平台具有相同的内容。旧平台是1.9版本,新平台是3.8.3版本。我想保留来自旧平台的相同用户,但我注意到当我在两个平台上创建具有相同密码的用户时,用户 table 中的密码哈希值不同。

需要指出的是,我尝试过使用相同密码但不同数据(用户名、电子邮件等)的用户。我认为这两个版本的密码都使用 MD5 哈希。两个用户的 table 具有完全相同的字段。

是否可以将用户从旧平台的数据库复制到新平台的数据库中,同时保持兼容性? (这意味着,用户可以使用他们的旧凭据登录这个新平台)如果是这样,我应该考虑什么?

Moodle 多年来一直没有对密码使用 MD5 哈希,因为它不安全。 Moodle 使用 PHP 函数 password_hash() - 在撰写本文时使用 bcrypt,但这可能会随着 PHP.

的未来版本而改变

Moodle 应该 能够检测到密码使用的是旧的、不安全的散列算法,并在该用户下次登录时自动更新散列密码(在根据旧哈希)。请参阅此处的代码:https://github.com/moodle/moodle/blob/bbb7dfc62ea295099ad23e8a83497269c19ddcd1/lib/moodlelib.php#L4824

当然,最好的办法是设置 Moodle 3.8 站点的测试副本,从 Moodle 1.9 站点(您知道其密码)的现有帐户之一复制用户记录并尝试一下。

请注意,这不会传输任何自定义配置文件字段、任何用户首选项或任何用户交互(如论坛帖子、作业提交等)等数据。

您是否考虑过升级数据库?升级路径为

1.9.19+ > 2.2.11 > 2.7.20 > 3.2.9 > 3.8

https://docs.moodle.org/38/en/Upgrading_FAQ#How_do_I_upgrade_from_1.9.x_to_3.8.3F

或者您可以导入用户并强制用户更改密码。

网站管理员 > 用户 > 上传用户

https://docs.moodle.org/38/en/Upload_users#Passwords