はい、申し訳ありません。ここのエラーメッセージは改善が必要です。このエラーメッセージが表示された場合、自動登録で何かが失敗しました。そのエラーが何であったかをお見せするために、コアを修正する必要があります。
ID の有効化をもう一度試してみて、インスタンスの /logs に移動すると、そこに報告されているエラーが表示されますか?
はい、申し訳ありません。ここのエラーメッセージは改善が必要です。このエラーメッセージが表示された場合、自動登録で何かが失敗しました。そのエラーが何であったかをお見せするために、コアを修正する必要があります。
ID の有効化をもう一度試してみて、インスタンスの /logs に移動すると、そこに報告されているエラーが表示されますか?
いいえ、何もありません。試してみました。最後のログは日曜日からのものです。
Railsコンソールを開き、このコマンドを実行してください。
DiscourseId::Register.call
おそらく失敗すると思いますが、より有用なエラーメッセージが表示されるはずです。
具体的にはどのコマンドですか?
試したのは 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 コンソールを実行する必要があります。
コンソール経由で行う必要があります。Pfaffman が指摘したように。DiscourseId::Register.call は rake タスクではありません。
@pfaffman と @pmusaraj さん、ありがとうございます。これで動作するようになりました。そして、(すべてのインスタンスで同じ設定のため)何が起こっているのか分かりました…
\"Registration failed: 400\\nError: {\\\"errors\\\":[\\\"You supplied invalid parameters to the request: Domain validation failed: Failed to fetch https://forum.concarne.org/.well-known/discourse-id-challenge with error code: 404\\\"],\\\"error_type\\\":\\\"invalid_parameters\\\"}\"
前述の通り、Apacheウェブサーバーの背後にDiscourseがあります。Letsencrypt証明書のチャレンジのために、.well-knownディレクトリへのクエリには例外を設けています。
ちょっと待ってください、それを変更してみます。
はい、それでした!
これまで 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/
皆さん、忍耐強く対応していただきありがとうございました。![]()