牛津小马哥沙雕跨境电商KOL,一个无趣的it男。
个人微信
公众号
视频号
更新时间2022-03-20

如何搭建一个和Anker一样的的论坛

Anker的论坛是通过Discourse搭建的,除了Anker的论坛之外,亚马逊官方的论坛也都是通过Discourse搭建的。

Anker论坛的截图如下。 Screen Shot 2021-12-10 at 8.45.25 PM.png Screen Shot 2021-12-10 at 8.45.01 PM.png

亚马逊官方的卖家论坛截图如下。 Screen Shot 2021-12-10 at 8.45.36 PM.png

什么是Discourse

根据Github上的数据,Discourse是最多人使用的开源论坛。

如何购买阿里云的服务器

打开阿里云aliyun.com,注册登陆完成之后,找到ECS专区。在ECS专区下方,点击创建实例。

服务器的配置可以如下:

  • 2CPU,4GB内存
  • 美国地区
  • 40GB的硬盘
  • 具备公网IP地址
  • 系统选择Ubuntu 18.04

推荐服务器的链接方式使用密码(比较适合新手)。如果你是老程序员,完全可以根据自己需求改变服务器的配置方案。

WINDOWS用户需要下载CMDER

WINDOWS用户需要CMDER来执行命令和操作服务器。点击这个链接到官网进行下载。

Screen Shot 2021-12-10 at 7.57.56 PM.png

如果会问CMDER是什么的,可能是新手。我这里用人话来讲解就是,CMDER是为了让你可以通过你的手提电脑,链接上你购买的阿里云服务器的一个工具。换种说法,是一个桥梁,链接着你的电脑和阿里云的电脑。如果你要专业的回答,你可以百度。上面只是为了帮助新手理解。

MAC用户需要终端TERMINAL

如果你是MAC用户,你需要在你的电脑里面搜索终端,或者terminal(英文版)。这个小工具可以帮助你链接服务器和操作服务器。

Screen Shot 2021-12-10 at 7.59.17 PM.png

同时你需要准备一个域名

因为是一个论坛,所以你需要有一个域名来链接上去。

如果你还未注册过域名,可以使用阿里云万网的服务注册。你需要做实名认证,但是不需要进行备案(因为我们使用的是美国的服务器)。

有了这个域名之后,我们还需要修改他的DNS记录。在阿里云后台,搜索“域名”。

Screen Shot 2021-12-10 at 10.46.47 AM.png

找到你刚才购买的域名,并且确保这个域名已经完成了实名认证。

Screen Shot 2021-12-10 at 10.52.35 AM.png

点击这个域名,在左侧选择DNS设置。

Screen Shot 2021-12-10 at 10.50.01 AM.png

然后添加一个A记录,点击保存。域名推荐使用forum,代表着论坛。当然,你可以根据自己的喜好进行修改。而IP地址需要是你在阿里云上刚购买的ECS服务器的公网IP。例如我的是47.88.12.221,那么我的A记录就输入47.88.12.221。

Screen Shot 2021-12-10 at 10.50.45 AM.png

由于我修改了我的域名xmg180.com的A记录,所以我现在,我的论坛域名为forum.xmg180.com。此时此刻,这个论坛还未能打开,下一步我们需要配置好服务器上的discourse才能打开。

你需要Mailjet的SMTP

为什么我们需要一个收发邮件的服务器?因为这既然是一个论坛,那么就会有用户需要注册,登录以及忘记密码。这也是为什么需要收发邮件。这里最简单的方式是使用mailjet或者你自己的企业邮箱的SMTP设置。如果你的论坛每月新增用户超过6000个,那么你可能需要考虑更高级的服务,例如Sendgrid

下面我将以Mailjet邮箱(免费的)为例,这里需要备注的是,千万不要使用qq邮箱。qq邮箱并不支持这类邮件。

首先打开mailjet.com,然后注册。注册完毕之后登陆,会要求输入一些企业信息。这些东西都是按照个人情况填写即可。

Screen Shot 2021-12-10 at 3.02.16 PM.png

设置完毕之后,需要打开邮箱,激活账号。

Screen Shot 2021-12-10 at 3.03.38 PM.png

接下来选择自己的角色,开发者Developer Screen Shot 2021-12-10 at 3.04.45 PM.png

发邮件的方式选择SMTP Relay

Screen Shot 2021-12-10 at 3.05.35 PM.png

最后我们可以看到SMTP的账号信息了。 你需要把这些信息记录下来,我们等下设置discourse的时候需要用到。 Screen Shot 2021-12-10 at 3.06.27 PM.png

接下来点击右下角下一步,保存了设置之后,回到首页。也可以点击右上角进行回到首页。我们下一步是需要绑定域名,为此我们需要进入用户中心。在左上角选中自己,点击account setting,然后点击Add a sender or domain。

Screen Shot 2021-12-10 at 7.23.31 PM.png

然后点击Add Domain。

Screen Shot 2021-12-10 at 7.33.42 PM.png

在Label和domain地方输入自己的域名。我的就是xmg180.com。

Screen Shot 2021-12-10 at 7.46.41 PM.png

保存之后,需要验证域名。我们会选择选项2的方式,也就是通过TXT记录来验证。

Screen Shot 2021-12-10 at 8.31.46 PM.png

我们回到去阿里云的后台,找到域名的DNS设置。点击添加记录。

Screen Shot 2021-12-10 at 7.47.37 PM.png

根据Mailjet的要求,添加一个TXT记录,输入的参数需要和mailjet提供的一致。

Screen Shot 2021-12-10 at 7.48.13 PM.png

保存记录之后,回到Mailjet,然后点击check now进行验证。

Screen Shot 2021-12-10 at 7.48.44 PM.png

这样子就添加域名成功了。我们可以看得到域名这个地方显示着Active。

Screen Shot 2021-12-10 at 7.49.43 PM.png

如何搭建一个和Anker一摸一样的论坛

在你完全不懂代码以及docker知识的情况下,你只需要严格按照下述步骤执行,你也能搭建出一个和anker一模一样的论坛。

首先要链接上服务器

首先WINDOWS打开CMDER,MAC的话打开Terminal,都是类似的。

在窗口输入 ssh root@ALIYUN_IP。这里的ALIYUN_IP是你的服务器的公网IP地址。举个例子,我的公网IP是47.88.12.221,那么我就需要输入:

ssh root@47.88.12.221

第一次链接的时候,需要输入yes/no。这个时候直接输入yes即可。

然后会被要求输入密码,这个密码就是你购买ecs时候输入的密码。举个例子,这个服务器的密码是ggwpXmgseo_123,我就直接输入:

// 我直接输入ggwpXmgseo_123,但是屏幕上不会显示出来。因为是敏感数据。

root@47.88.12.221's password: 

成功链接上服务器之后,会看到如下的话语。这是以阿里云为例子的。

Welcome to Ubuntu 18.04.6 LTS (GNU/Linux 4.15.0-162-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

Welcome to Alibaba Cloud Elastic Compute Service !

root@discourse:~# 

先更新apt

现在已经链接上了服务器,先更新apt。

apt-get update

更新的过程中,你会看到一个百分比,会需要一点时间。

安装Git

接下来在服务器上安装git工具

apt install git-all

安装的过程中,会问你 Y/n 的问题,直接输入y即可,代表着yes(继续安装)。

开始安装Discourse

接下来克隆官方的discourse docker镜像。直接在窗口中输入以下代码即可。

sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

安装完毕,并且执行完毕cd命令之后,你应该看到你的窗口中显示着类似如下的东西。

// 你的路径已经被改成成了/var/discourse
// 如果你的前缀是其它的,例如root@asdasdfo-12312,这是很正常的。代表着你的服务器的名字和我的服务器的名字不同罢了。
root@discourse:/var/discourse# 

Screen Shot 2021-12-10 at 10.35.26 AM.png

安装Docker

移除旧版本的Docker,如果有。

sudo apt-get remove docker docker-engine docker.io containerd runc

为安装做准备

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

添加官方的GPG

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

设置稳定的Repo

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装前更新

sudo apt-get update

正式安装

sudo apt-get install docker-ce docker-ce-cli containerd.io

如果你安装成功了之后,你输入docker ps这个命令,就会看到如下的显示。

CONTAINER ID   IMAGE             COMMAND                  CREATED        STATUS        PORTS     NAMES 

删除80端口进程

有些时候,会存在80端口被占用的情况。这样子无法初始化discourse的。

kill $(sudo netstat -anp | awk '/ LISTEN / {if($4 ~ ":80$") { gsub("/.*","",$7); print $7; exit } }')

初始化Discourse

确保你在争取的路径

cd /var/discourse

直接运行下方命令,开始初始化Discourse

./discourse-setup

你会看到下面的这些问题弹出来,而你需要一个一个的回答和输入。

// 你的域名,我的就是forum.xmg180.com
Hostname for your Discourse? [discourse.example.com]: forum.xmg180.com

// 你的邮箱,我们的示范里面就是我的qq邮箱,一定需要是你可以登录的邮箱
Email address for admin account(s)? [me@example.com,you@example.com]: 664944266@qq.com

// SMTP服务器,我们情况就是in-v3.mailjet.com
SMTP server address? [smtp.example.com]: in-v3.mailjet.com

// SMTP的端口,Mailjet 就是 587
SMTP port? [587]: 587

// SMTP的用户名:我们的情况就是输入Mailjet的API KEY,也就是SMTP USERNAME
SMTP user name? [user@example.com]:  a7ba0412312a473a9d123pansdf61586de

// SMTP的密码:来自于Mailjet提供的SMTP密码,也就是SMTP Password
SMTP password? [pa$$word]: 65dd6a9fea782a51a18c7985198d12a5

// 消息接收邮箱,我们的企业邮箱no-reply@xmg180.com
notification email address? [noreply@forum.xmg180.com]: no-reply@xmg180.com

// SSL的邮箱,这个地方输入自己的邮箱即可,推荐企业邮箱
Optional email address for Let's Encrypt warnings? (ENTER to skip) [me@example.com]: 664944266@qq.com

// 额外的maxmind参数,忽略即可,直接确认键跳过。
Optional Maxmind License key () [xxxxxxxxxxxxxxxx]:

输入完毕之后,它会问你,这些数据参数对么?你只需要敲击键盘的确认键即可继续。例如:


Does this look right?

Hostname          :  no-reply@xmg180.com
Email             :  664944266@qq.com
SMTP address      :  in-v3.mailjet.com
SMTP port         :  587
SMTP username     : 1asd2312390123pasidhfpoasi1
SMTP password     : a8sds709fdg878089vc7x0bx
Notification email:  no-reply@xmg180.com
Let's Encrypt :  664944266@qq.com
Maxmind license: (unset)


// 敲击键盘的确认键继续,如果你输入ctril+c,则是代表重新填写。

接下来,Discourse就会自动开启安装。你可以在屏幕中看到进度条。

letsencrypt.ssl.template.yml enabled


Configuration file at containers/app.yml updated successfully!

Updates successful. Rebuilding in 5 seconds.
Building app
x86_64 arch detected.

WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

2.0.20211118-0105: Pulling from discourse/base
a10c77af2613: Pull complete 
2a94306b3060: =======> Do

启动你的Discourse

接下来你只需要打开你的网站域名,例如forum.xmg180.com即可。我的是打不开的,因为我将其关闭了。我上面这个只是作为示范教学教大家如何搭建而已。

打开之后,你会看到欢迎界面。其实剩下的东西我觉得就没必要教你了。Discourse会引导你创建第一个账户,成为超级管理员。然后你的论坛就正式开启了。

Screen Shot 2021-12-10 at 2.19.33 PM.png

注册成功之后,会通过你刚才所设置的邮箱发送邮件给你。你会收到下述的这个邮件。

Screen Shot 2021-12-10 at 8.37.42 PM.png

点击链接,正式激活你的论坛。在初始化过程中,如果卡死了,可以选择点击Maybe later。我就遇到了这种情况。

Screen Shot 2021-12-10 at 8.38.00 PM.png

到此,和Anker一样的论坛就搭建完成了。Anker还自行添加了自己的风格,我们当然也可以。

如果你想要管理用户和修改风格的话,或者是学习Anker和亚马逊官方的论坛风格,你只需要在右上角点击三条杠,然后找到Admin和Setting即可。

Screen Shot 2021-12-10 at 8.50.14 PM.png