Discourse 是一个现代、免费且开源的论坛系统,运行在 Ruby on Rails 上。它使用PostgreSQL作为其数据库和Redis缓存。话语被许多顶级公司用来围绕他们的产品开发社区和论坛,并为客户提供支持。
在本指南中,87cloud将在带有Ubuntu 16.06的阿里云弹性计算服务(ECS)上安装Disches,并使用DirectMail发送电子邮件。我们将利用阿里云 CDN 加速静态内容交付,实现静态内容交付。
您可以通过在阿里云注册新帐户来免费获得所有这些产品。
先决条件对于本教程,我们需要:
- 阿里云 ECS Ubuntu 16.06 实例,至少具有 2GB RAM 和 1 个 vCPU。
- 解析到您的 ECS 实例的域名或子域。
- 阿里云 CDN 设置可加快我们的论坛速度。
- 用于从我们的论坛发送电子邮件的直邮 SMTP 凭据。
您需要在开始实际安装之前完成先决条件,因为 Discourse 安装程序将在安装过程开始时要求提供这些信息。
步骤 1:设置域名我们首先执行此步骤,因为 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 域名列表,然后单击添加域。您将看到一个用于设置 CDN 域和源的表单。
在“CDN 域”字段中,输入域名的子域。例如,如果您的域名 example.com,则可以输入 cdn.example.com。
在“业务类型”中,选择“映像和小文件”。
在“源站点类型”中,选择“源站点域名”。
在显示的字段中输入您用于论坛的域名。
在端口字段中,选择端口 443,因为话语安装程序将安装让我们加密 SSL 证书,并在端口 443 上为您的论坛提供服务。
在加速区域中,如果要使用中国大陆以及世界其他地区的节点,请选择“全球加速”;如果要仅使用中国大陆以外的节点,可以选择“海外加速(非中国大陆)。”海外加速“。要仅使用中国 POP,则应从菜单中选择中国大陆。
在 CDN 控制台上,您应该看到类似于以下内容的内容:
然后单击“下一步”。
几分钟后将配置您的 CDN,您将获得一个唯一的 URL。您必须在域的 DNS 设置中创建指向此 URL 的 CNAME。
安装 CDN 的 SSL 证书我们需要为 CDN 子域设置 SSL 证书。如果您已有证书,则可以直接安装它。如果没有,您可以从阿里云购买证书。
要安装证书,请转至 CDN 控制台,然后单击 CDN URL 列表中 URL 旁边的管理。然后单击HTTPS安全加速旁边的编辑图标。
打开“证书状态”开关。
在“选择证书”字段中,选择“自定义上传”。
在“证书名称”字段中输入您选择的名称。
在标记的文本框中输入证书内容和私钥。这些由证书提供程序提供。
在“重定向类型”中,单击显示 HTTP -> HTTPS 的单选按钮。
它应该看起来像这样:
单击“确定”保存证书。
设置回源主机此设置是必需的,因此您的 CDN 不会执行到源服务器的 301 重定向。
单击基本配置下的“回到源主机”上的编辑图标。
将打开一个叠加窗口。
打开“返回源主机”按钮。
从下拉菜单中,选择您的来源域名。
它应该看起来像这样
单击“确定”进行保存。
设置 CORS HTTP 标头现在,单击“设置 HTTP 标头”,然后单击“添加 HTTP 标头”。将打开一个窗口。
从下拉菜单中选择访问控制允许源,然后添加 * 作为值。
保存后,它应如下所示:
请注意 CDN URL,因为我们稍后会用到它。
步骤 3:获取直接邮件 SMTP 凭据邮件推送是阿里云提供的一项电子邮件发送服务,是最便宜、最可靠的服务之一。
请注意: 电子邮件设置是用户破坏论坛并必须重新构建论坛的最常见步骤。执行这些步骤时要采取额外的预防措施。
前往邮件推送控制台。如果您以前没有激活过它,它会要求您这样做。您可以阅读DirectMail官方文档,但我会在这里描述它,因为我们需要做一些事情才能使其与Disches一起使用。
添加发件人域这将是发送电子邮件的域。使用您的论坛域,这很重要。
单击右上角的“新建域”按钮,将打开一个弹出窗口。
在“域”字段中输入论坛的域,然后单击“确定”。
需要域验证才能激活它。为此,请执行以下操作:
- 单击域前面的配置。您将看到 DNS 配置数据。您需要将这些条目添加到域的 DNS 记录中。登录到 DNS 提供商的控制面板以执行此操作。
- 将 DNS 条目添加到域的 DNS 后,单击“确认更改”。
- 现在点击 验证.只有在域状态更改为“可用”后,您才能发送邮件。如果即使在正确配置后也无法验证,请等待一段时间,然后再次验证。DNS 更改可能需要一些时间才能生效。
单击左侧菜单中的发件人地址。
单击右上角的创建发件人地址。
将打开一个窗口,您需要在其中输入数据。填写所有字段以设置发件人电子邮件:
- 电子邮件域:从下拉菜单中选择论坛的域名。
- 帐户:noreply(重要的是只放置noreply,因为帐户或身份验证将失败,并且您的论坛将无法发送电子邮件。
- 回复地址: 您希望接收回复的任何电子邮件地址。
- 邮件类型:触发的电子邮件
它应该看起来像这样
按“确定”创建发件人地址。
设置 SMTP 密码单击在上一步中设置的发件人电子邮件地址前面的“设置 SMTP 密码”链接。
将打开一个窗口,您可以在其中设置密码。
请仔细阅读说明,因为它需要混合使用小写大写字母和数字。使用至少 2 个不同的大写字母、2 个不同的小写字母和 2 个不同的数字作为密码。
记下发件人电子邮件地址和 SMTP 密码。运行 Discourse 安装程序需要它。您还需要的 SMTP 服务地址。选择您设置 Directmail 帐户所在的区域。
步骤 4:运行话语安装程序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。使用下面的命令安装 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]:
条目的说明如下:
- 您的话语的主机名:这是您要在论坛中使用的域或子域。我们在步骤 1 中设置了它,同时在域的 DNS 中添加“A”记录。
- 管理员帐户的电子邮件地址:在这里,您可以输入论坛管理员帐户的电子邮件地址。您可以添加多个以我的逗号(,)分隔的管理员电子邮件。这不是您的 SMTP 发件人地址。
- SMTP 服务器地址:这是邮件推送的 SMTP 服务器的地址。您可以在此页面上找到它。选择您创建邮件直销帐户的区域。您可以在“邮件直销”控制台的顶部看到您所在的地区。
- SMTP 端口:在此输入80;这是邮件推送用于 SMTP 连接的端口。
- SMTP 用户名:在这里,您输入我们在步骤3中创建的发件人电子邮件地址。
- SMTP 密码:输入我们在步骤3中设置的SMTP密码。
- 让我们加密帐户电子邮件:这是Let's Encrypt用于为您的域生成SSL证书并发送有关过期和续订失败的通知的电子邮件地址。您可以通过按Enter键跳过此操作,但我建议您输入电子邮件地址并定期检查。此外,请确保在运行安装程序之前已传播 DNS,因为这是生成 Let's Encrypt 证书所必需的。
输入所有信息后,您需要查看并确认设置。请仔细检查,如果正确,请按 Enter 键。如果您需要更改某些内容,请键入N并按Enter键。
确认后,设置所有内容大约需要10分钟。设置完成后,您可以通过访问论坛的URL在浏览器中查看您的论坛。
在此阶段,虽然您的论坛正在运行,但目前尚未使用阿里云 CDN。我们将在以下步骤中进行设置。
步骤二:设置阿里云 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 美元的免费试用版,以试用本指南和其他阿里云服务。