この記事は英語の原文から翻訳されました:Change the domain name or rename your Discourse
GitHub のインストールガイド (discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub) を参照して Discourse インスタンスをインストールし、その後ドメイン名を変更したい場合の手順です。Discourse 公式のホスティングサービス (Discourse pricing | Discourse - Civilized Discussion) をご利用の場合は、「ホストされた Discourse 用のドメイン名の設定」(Configure your domain name for hosted Discourse) のページにある詳細をご参照ください。
ここでは、Discourse インスタンスのドメイン名を talk.foo.com から talk.bar.com に変更したいと仮定します。
それでは始めましょう。
DNS の高度な設定で TTL を低く設定する
ドメイン名の変更をできるだけ早く反映させるため、ドメインの DNS 設定で TTL(Time To Live)を低く設定します。例えば、60 分に設定できます。
この設定の主な目的は、DNS 変更の反映を早めることです。DNS 変更にはキャッシュの影響により時間がかかるためです。
サイトから古いドメインに関するすべての設定を削除する
/admin/site_settings にアクセスし、古いドメインに関連する設定を検索してください。
検索結果に古いドメインに関連する設定が見つかった場合は、それらの設定を修正してください。
app.yml ファイルで Discourse の設定を編集する
オプションとして、
./discourse-setupコマンドを再度実行し、プロンプトに従って新しいドメイン名をapp.yml設定ファイルに更新することも可能です。
app.yml ファイル内で、hostname の内容を変更します。
## Discourse インスタンスのホスト名は以下のように変更されます
DISCOURSE_HOSTNAME: 'talk.bar.com'
(また、CDN を使用している場合、app.yml ファイル内の CDN 関連の設定を一時的にコメントアウトしてください。変更が完了したら、コメントを解除してください。)
上記の設定完了後、Discourse を再構築する必要があります。
./launcher rebuild app
再構築が完了すると、サイトには新しいドメイン名からのみアクセスできるようになります。
DNS 設定を変更する
- 古いドメインの DNS レコードを削除する
- 新しいドメインの DNS レコードを変更し、Discourse サービスのアドレスを指すようにする
上記の設定が完了すれば、新しいドメイン名で Discourse サイトに問題なくアクセスできるはずです。
サイト再構築中に DNS 設定を変更することも可能です。
すべての機能が正常に動作するか確認しましょう。まず、Discourse システムに正常にログインできるか確認することが重要です。これは次のセクションで扱います。
第三者ログインの設定を変更する
ログイン方法によっては、ドメイン変更後に第三者ログインができなくなる可能性があるため、直ちにこの設定を変更する必要があります。
Twitter、Facebook、Google、Yahoo、GitHub などのソーシャルアカウントを使用したログイン設定においても、コールバック URL を新しいドメイン名に合わせて修正してください。
設定と変更については、公式の関連記事を参照してください。
テーマ内の古いサイトへのすべての参照を新しいドメイン名に置換する
現在、すべてのトピックや投稿内のサイト関連のリンクは古いドメイン名を指しています。これを新しいドメイン名に更新する必要があります。操作を開始しましょう。
./launcher enter app
次に、以下のコマンドを入力してください。
discourse remap =BEFORE= =AFTER=
プロンプトに従って変更を行った後、以下のコマンドを実行します。
rake posts:rebake
これで、テーマ内のリマップが新しいドメイン名に更新され、すべてのトピックが再生成されて見落としを防ぎます。
これでドメイン名変更の設定は完了です!
(最初に CDN 設定をコメントアウトしていた場合は、忘れずに元に戻してください。)
テーマ内の入力フォームがどのように作成されているか知りたい方は、こちらをご覧ください:Discourse 入力フォームのテーマコンポーネント
詳細については、原文「Discourse のドメイン名を変更する方法 - Discourse - OSSEZ」(iSharkFly - 飞鲨) をご覧ください。
公式のサポートに感謝いたします。
