设置 Discourse ID 的帮助

是的,抱歉,这里的错误消息需要改进。当您看到此错误消息时,自动注册失败了。我们应该修复核心部分,以显示您遇到的错误。

如果您再次尝试启用 ID,并在您的实例上转到 /logs,您是否看到那里报告了任何错误?

2 个赞

没有,什么都没有。刚试过。最后一条日志是周日的。

请打开您实例的 Rails 控制台并尝试运行以下命令:

DiscourseId::Register.call

它很可能会失败,但应该会给您一个更有用的错误消息。

1 个赞

具体是哪个命令?

我尝试了:rake DiscourseId::Register.call

root@prometheus-discourse-concarne:/var/www/discourse# rake DiscourseId::Register.call
rake aborted!
Don't know how to build task 'DiscourseId::Register.call' (See the list of available tasks with `rake --tasks`)
Did you mean?  discourse_calendar:install:migrations
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
(See full trace by running task with --trace)

然后我尝试了 rails r \"DiscourseId::Register.call\",它在控制台没有任何返回。

/编辑:抱歉,我没有提到,它没有激活或创建任何东西。当我尝试启用 Discourse ID 时,我仍然收到相同的错误消息。

你需要这样做:

./launcher enter app
rails c
DiscourseId::Register.call

哦。看起来 rails r 就是这么做的。抱歉。我不知道那个。但从我刚收到的输出来看,至少在 rails 控制台中不可能没有任何输出。

是的。我尝试了 rails r,它没有产生任何输出,所以你需要按照指示运行 rails 控制台。

1 个赞

您需要通过控制台进行操作,正如 Pfaffman 所指出的。DiscourseId::Register.call 不是一个 rake 任务。

1 个赞

感谢 @pfaffman@pmusaraj,现在可以了。而且我大概知道这里(所有实例因为配置相同)发生了什么……

“注册失败:400\n错误:{\“errors\”:[“您向请求提供了无效参数:域验证失败:获取 https://forum.concarne.org/.well-known/discourse-id-challenge 失败,错误代码:404”],\“error_type\”:\“invalid_parameters\”}”

如前所述,我的 Discourse 部署在 Apache Web 服务器后面。对于 Let’s Encrypt 证书挑战,我对 .well-known 目录的查询有一个例外。

马上回来,我正在尝试更改它。

1 个赞

是的,就是这样!

到目前为止,我一直使用 ProxyPass /.well-known !,我已将其更改为 ProxyPass /.well-known/acme-challenge !

也许应该将此添加到设置自托管 Discourse 实例的说明(我现在找不到……)中?

RequestHeader set X-Forwarded-Proto "https"
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /.well-known/acme-challenge !
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

感谢你们对我如此耐心。 :slight_smile:

2 个赞