各种多站点安装问题

我想知道上面建议配置中的 db_id: 2 值有什么作用?

另外,向现有的多站点设置添加新站点的过程是什么?仅仅是:

  • 更新 yaml
  • ./launcher bootstrap multisite [^1]
  • ./launcher start multisite

我想知道是否有办法避免通过进行完全引导或重建来影响所有其他现有站点,而是以某种方式仅添加所需的额外数据库?

[^1]:我首先尝试了 ./launcher rebuild multisite,但这似乎失败了

我认为数据库 ID 不再需要了。

您可以直接编辑多站点文件并添加新站点,然后执行

sv restart unicorn

然后迁移数据库。

1 个赞

您真是救命恩人!

我缺少这个重启命令(我也尝试过 sv reload unicorn,但不知何故这还不够)。

关于创建数据库,是否已经有自动执行的方法了?如果能有 rake db:create[mynewdbname] 就好了。否则,我可以编写一个简短的 shell 脚本。

目前,我手动创建(创建数据库并设置权限),然后执行 RAILS_DB=newdb rake db:migrate 来填充它。

另外,我只是想确认一下我是否在做一些愚蠢的事情:

  • 目前,我正在 Docker 中编辑多站点文件(/var/www/discourse/config/multisite.yml)
  • 手动创建数据库
  • 运行 rake db:migrate
  • sv restart unicorn
  • 然后我还必须在 Docker 之外编辑 yaml 文件,以便在将来的任何重建或升级时,多站点配置都能保持同步。

我是否在两个不同的地方编辑多站点配置很傻,而实际上有一个方法可以在一个地方编辑然后推送更改?

1 个赞

能否稍微整理一下这份文档,并在其中提供更多指导?首先,我对 Docker 非常陌生,虽然我有 Linux 服务器经验,但算不上是专家。我习惯于使用 cron 作业、shell 脚本以及 Apache 多站点等老式方法。但这个东西更复杂,而且使用的是我不太熟悉的编程语言。也许还可以提供一个演示视频?如果 Discourse 能够直接支持多站点功能就好了,那样的话只需要编辑几个文件就可以了。

2 个赞

只需粘贴该诗节文本并进行编辑即可。

然后,您需要一个反向代理,或者遵循使用多个域/重定向设置 Let’s Encrypt 来获取所有域的证书。

另请参阅使用 Let’s Encrypt 和无反向代理设置多站点配置。但需要更新该指南,添加另一行来自上一个链接的必需项。我一直想更新它,但一直没能做到。

1 个赞

如果我正在进行多站点设置,我的域名应该指向哪里?指向服务器的同一 IP(托管另一个论坛的服务器)吗?

是的,将所有域指向同一个服务器 IP。
使用 Nginx 或 Caddy 服务器设置反向代理。
Caddy 是最好的,因为它为您的所有域提供免费的自动 SSL 证书。

1 个赞

我按照本教程成功地使用 Docker 设置了多站点安装。我最近在尝试升级时遇到了一个错误,我相信这一行:

    - exec: cd /var/www/discourse & sudo -E -u discourse bundle exec rake multisite:migrate

应该编辑为:

    - exec: cd /var/www/discourse & sudo -H -E -u discourse bundle exec rake multisite:migrate

有人能确认/编辑本教程吗?

1 个赞

是的,我也遇到了这个问题。你需要进行此更改,否则你的引导会失败。

2 个赞