Discourse 是一个现代、免费且开源的论坛系统,运行在 Ruby on Rails 上。它使用PostgreSQL作为其数据库和Redis缓存。话语被许多顶级公司用来围绕他们的产品开发社区和论坛,并为客户提供支持。
在本指南中,我们将在带有Ubuntu 16.06的阿里云弹性计算服务(ECS)上安装Disches,并使用DirectMail发送电子邮件。我们将利用阿里云 CDN 加速静态内容交付,实现静态内容交付。
您可以通过在阿里云注册新帐户来免费获得所有这些产品。
对于本教程,我们需要:
您需要在开始实际安装之前完成先决条件,因为 Discourse 安装程序将在安装过程开始时要求提供这些信息。
我们首先执行此步骤,因为 DNS 传播需要一些时间。我们希望在运行安装程序之前传播它,因为Let's Encrypt需要它来生成SSL证书。
在此步骤中,您只需在域的 DNS 配置中添加一个“A”记录,将您的域或子域指向 ECS 实例的 IP 地址。
记录类型: AName
: forum.example.com
值: your.server.ip.address (请参阅上一步中的图像以了解在哪里可以找到它)
如果您使用的是阿里云 DNS,您可以按照本指南添加和管理域名,并按照本指南添加和管理记录。
有关阿里云 CDN 的官方文档,请参阅 CDN 快速入门指南。但是,我将详细讨论本节,因为我们需要一些设置来设置话语。
单击此处转到CDN控制台。
单击 CDN 菜单下的 CDN 域名列表,然后单击添加域。您将看到一个用于设置 CDN 域和源的表单。
在“CDN 域”字段中,输入域名的子域。例如,如果您的域名 example.com,则可以输入 cdn.example.com。
在“业务类型”中,选择“映像和小文件”。
在“源站点类型”中,选择“源站点域名”。
在显示的字段中输入您用于论坛的域名。
在端口字段中,选择端口 443,因为话语安装程序将安装让我们加密 SSL 证书,并在端口 443 上为您的论坛提供服务。
在加速区域中,如果要使用中国大陆以及世界其他地区的节点,请选择“全球加速”;如果要仅使用中国大陆以外的节点,可以选择“海外加速(非中国大陆)。”海外加速“。要仅使用中国 POP,则应从菜单中选择中国大陆。
在 CDN 控制台上,您应该看到类似于以下内容的内容:
然后单击“下一步”。
几分钟后将配置您的 CDN,您将获得一个唯一的 URL。您必须在域的 DNS 设置中创建指向此 URL 的 CNAME。
我们需要为 CDN 子域设置 SSL 证书。如果您已有证书,则可以直接安装它。如果没有,您可以从阿里云购买证书。
要安装证书,请转至 CDN 控制台,然后单击 CDN URL 列表中 URL 旁边的管理。然后单击HTTPS安全加速旁边的编辑图标。
打开“证书状态”开关。
在“选择证书”字段中,选择“自定义上传”。
在“证书名称”字段中输入您选择的名称。
在标记的文本框中输入证书内容和私钥。这些由证书提供程序提供。
在“重定向类型”中,单击显示 HTTP -> HTTPS 的单选按钮。
它应该看起来像这样:
单击“确定”保存证书。
此设置是必需的,因此您的 CDN 不会执行到源服务器的 301 重定向。
单击基本配置下的“回到源主机”上的编辑图标。
将打开一个叠加窗口。
打开“返回源主机”按钮。
从下拉菜单中,选择您的来源域名。
它应该看起来像这样
单击“确定”进行保存。
现在,单击“设置 HTTP 标头”,然后单击“添加 HTTP 标头”。将打开一个窗口。
从下拉菜单中选择访问控制允许源,然后添加 * 作为值。
保存后,它应如下所示:
请注意 CDN URL,因为我们稍后会用到它。
邮件推送是阿里云提供的一项电子邮件发送服务,是最便宜、最可靠的服务之一。
请注意: 电子邮件设置是用户破坏论坛并必须重新构建论坛的最常见步骤。执行这些步骤时要采取额外的预防措施。
点击此处前往邮件推送控制台。如果您以前没有激活过它,它会要求您这样做。您可以阅读DirectMail官方文档,但我会在这里描述它,因为我们需要做一些事情才能使其与Disches一起使用。
这将是发送电子邮件的域。使用您的论坛域,这很重要。
单击右上角的“新建域”按钮,将打开一个弹出窗口。
在“域”字段中输入论坛的域,然后单击“确定”。
需要域验证才能激活它。为此,请执行以下操作:
单击左侧菜单中的发件人地址。
单击右上角的创建发件人地址。
将打开一个窗口,您需要在其中输入数据。填写所有字段以设置发件人电子邮件:
它应该看起来像这样
按“确定”创建发件人地址。
单击在上一步中设置的发件人电子邮件地址前面的“设置 SMTP 密码”链接。
将打开一个窗口,您可以在其中设置密码。
请仔细阅读说明,因为它需要混合使用小写大写字母和数字。使用至少 2 个不同的大写字母、2 个不同的小写字母和 2 个不同的数字作为密码。
记下发件人电子邮件地址和 SMTP 密码。运行 Discourse 安装程序需要它。您还需要可在此处找到的 SMTP 服务地址。选择您设置 Directmail 帐户所在的区域。
Discourse团队构建了一个不错的安装程序,使安装Disclement变得非常容易。您只需要先安装 Docker,然后下载并运行安装程序。几分钟后,您将准备好新的话语论坛。让我们开始吧!
通过 SSH 登录到您的服务器
ssh root@192.168.1.1
注意:将 192.168.1.1 替换为您的 IP 地址。
成功登录后,运行以下命令以首先更新系统。
sudo apt-get update && apt-get upgrade -y
我们将以 root 用户身份运行所有步骤,因此请运行此命令。
sudo -s
Discourse 论坛在 Docker 容器内运行,因此我们将首先安装最新版本的 Docker。
wget -qO- https://get.docker.com/ |sh
在继续之前,您需要安装 Git。使用下面的命令安装 Git。
apt-get install git
创建目录以安装话语
mkdir /var/discourse
在此文件夹中克隆话语 Docker 映像
git clone https://github.com/discourse/discourse_docker.git /var/discourse
切换到此目录
cd /var/discourse
启动安装脚本。
./discourse-setup
话语将首先创建一个交换空间,然后您将被要求提供以下信息。
Hostname for your Discourse? [discourse.example.com]: Email address for admin account(s)? [me@example.com,you@example.com]: SMTP server address? [smtp.example.com]: SMTP port? [587]: SMTP user name? [user@example.com]: SMTP password? [pa$$word]: Let's Encrypt account email? (ENTER to skip) [me@example.com]:
条目的说明如下:
输入所有信息后,您需要查看并确认设置。请仔细检查,如果正确,请按 Enter 键。如果您需要更改某些内容,请键入N并按Enter键。
确认后,设置所有内容大约需要10分钟。设置完成后,您可以通过访问论坛的URL在浏览器中查看您的论坛。
在此阶段,虽然您的论坛正在运行,但目前尚未使用阿里云 CDN。我们将在以下步骤中进行设置。
转到 Discourse 目录(如果您尚未在其中)。
cd /var/discourse
在 nano 中打开 app.yml 文件进行编辑。
nano containers/app.yml
向下滚动,直到找到此行。
#DISCOURSE_CDN_URL: //discourse-cdn.example.com
并将此行粘贴到其正下方。确保保持与上行相同的缩进。
DISCOURSE_CDN_URL: //cdn.example.com
注意: 替换为我们在步骤 2 中设置的 CDN URL。//cdn.example.com
按 Ctrl+O 和 Enter 保存更改。
按 Ctrl+X,然后按 Enter 退出 nano。
现在重新生成应用。
./launcher rebuild app
重建过程大约需要 10 分钟。
您的论坛现在将使用阿里云 CDN 来提供静态内容。访问论坛的URL,您将收到此消息。
单击注册按钮并根据需要填写所有字段,以便为论坛创建管理员帐户。话语论坛将向您发送一封电子邮件以确认您的电子邮件地址。
如果您没有收到激活电子邮件,请查看您的 DirectMail 设置,并确保已仔细阅读本教程。
如果您需要在论坛中更改 SMTP 设置,则可以在 Discourse 目录中使用此命令再次运行安装程序。
./discourse-setup
系统将再次询问您所有信息,安装程序还将向您显示您之前提供的所有信息。
确认您的电子邮件后,请完成初始的话语设置,您很快就会看到论坛的主页,如下所示
您已成功安装话语。享受您的新话语论坛!
您可以在阿里云的基础设施上轻松安装话语论坛。您不必从多个提供商处购买产品,因为您可以从阿里云获得所有必需的服务,例如云服务器,SMTP服务和CDN。如果您尚未注册,请注册并获得价值 300 美元的免费试用版,以试用本指南和其他阿里云服务。