我有一个几个月大的 WordPress 网站的暂存副本。我想尝试一下单点登录 (SSO) 如何与论坛(已关闭注册,尚未启动)协同工作,然后再与生产网站连接,届时生产网站将添加更多用户。这会混淆 Discourse 吗?我会尝试暂存网站上的少量用户来了解情况,但当连接切换到使用另一个网站时,他们会怎样?不过,他们的 WordPress 用户 ID 和电子邮件保持不变。
如果 您的生产和暂存站点上的 WP 用户 ID 和电子邮件相同,则无需对 Discourse 进行任何更改即可切换到生产站点。
最好仔细检查以确保用户 ID 相同。我似乎记得使用 WP Engine 的暂存和生产站点时,无法保证暂存和生产站点之间的用户 ID 会匹配——它们使用完全独立的数据库。确保您的生产和暂存站点不是这种情况。
如果您不确定暂存和生产站点之间的用户 ID 是否会匹配,并且 SSO 负载中未将 require_activation 参数设置为 true,则可以在切换到生产站点之前安全地删除 Discourse 数据库中的所有现有 SingleSignOnRecord 条目。现有用户首次通过 WordPress 登录 Discourse 时,Discourse 将根据他们的电子邮件地址查找他们,并为他们生成一个新的 SingleSignOnRecord。
可以通过 Rails 控制台删除现有的 SingleSignOnRecord 条目:
SingleSignOnRecord.destroy_all
如果 SSO 负载中 确实 将 require_activation 参数设置为 true,您仍然可以删除 Discourse 端上的 SSO 记录。在现有用户可以从您的生产站点登录 Discourse 之前,您需要将他们的电子邮件地址在 WordPress 中标记为已验证。有关如何从他们的 WordPress 个人资料页面执行此操作的详细信息,请参见此处:https://meta.discourse.org/t/validate-email-addresses-with-the-wp-discourse-plugin/130085。
如果您有一个暂存的 WordPress 网站,我强烈建议您也拥有一个暂存的 Discourse 论坛。这样您就不必担心将暂存的 WordPress 连接到生产环境的 Discourse 会发生什么。
这是一个常见场景——有人在某个 WordPress 托管服务(例如 WP Engine)上创建了一个网站,在默认的暂存站点上进行测试,然后切换到生产环境。在我提供 Discourse 支持时,我曾多次回答过同样的问题。对于 Discourse 来说,通常没有永久性的单独暂存站点(或者说并不需要)。
是的,你说得对,这确实是一个相对常见的情况。
不过,如果你的 WordPress 网站正在运行中,就像这位朋友 (@Firsh 请纠正我,如果我错了) 的情况一样,那么我认为混合暂存和生产环境的潜在风险/成本,远远超过了单独启动一个 Discourse 实例所节省的时间和成本。这是假设你的暂存环境是生产环境的副本(通常情况就是如此)。
除非有组织上的限制,不允许启动新的实例(在这种情况下,你可能应该有一个单独的暂存环境),否则在 DigitalOcean、Vultr 等平台上启动一个单独的 Discourse 实例相对便宜且容易,可以避免暂存环境与生产环境交叉污染而可能出现的任何问题。这样做你可能会节省时间(以及时间即金钱)。完成后你只需将其关闭即可。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.