如何搭建一个和Anker一样的的论坛
Anker的论坛是通过Discourse搭建的,除了Anker的论坛之外,亚马逊官方的论坛也都是通过Discourse搭建的。
Anker论坛的截图如下。
亚马逊官方的卖家论坛截图如下。
什么是Discourse
根据Github上的数据,Discourse是最多人使用的开源论坛。
如何购买阿里云的服务器
打开阿里云aliyun.com,注册登陆完成之后,找到ECS专区。在ECS专区下方,点击创建实例。
服务器的配置可以如下:
- 2CPU,4GB内存
- 美国地区
- 40GB的硬盘
- 具备公网IP地址
- 系统选择Ubuntu 18.04
推荐服务器的链接方式使用密码(比较适合新手)。如果你是老程序员,完全可以根据自己需求改变服务器的配置方案。
WINDOWS用户需要下载CMDER
WINDOWS用户需要CMDER来执行命令和操作服务器。点击这个链接到官网进行下载。
如果会问CMDER是什么的,可能是新手。我这里用人话来讲解就是,CMDER是为了让你可以通过你的手提电脑,链接上你购买的阿里云服务器的一个工具。换种说法,是一个桥梁,链接着你的电脑和阿里云的电脑。如果你要专业的回答,你可以百度。上面只是为了帮助新手理解。
MAC用户需要终端TERMINAL
如果你是MAC用户,你需要在你的电脑里面搜索终端,或者terminal(英文版)。这个小工具可以帮助你链接服务器和操作服务器。
同时你需要准备一个域名
因为是一个论坛,所以你需要有一个域名来链接上去。
如果你还未注册过域名,可以使用阿里云万网的服务注册。你需要做实名认证
,但是不需要进行备案(因为我们使用的是美国的服务器)。
有了这个域名之后,我们还需要修改他的DNS记录。在阿里云后台,搜索“域名”。
找到你刚才购买的域名,并且确保这个域名已经完成了实名认证。
点击这个域名,在左侧选择DNS设置。
然后添加一个A记录,点击保存。域名推荐使用forum,代表着论坛。当然,你可以根据自己的喜好进行修改。而IP地址需要是你在阿里云上刚购买的ECS服务器的公网IP。例如我的是47.88.12.221,那么我的A记录就输入47.88.12.221。
由于我修改了我的域名xmg180.com的A记录,所以我现在,我的论坛域名为forum.xmg180.com。此时此刻,这个论坛还未能打开,下一步我们需要配置好服务器上的discourse才能打开。
你需要Mailjet的SMTP
为什么我们需要一个收发邮件的服务器?因为这既然是一个论坛,那么就会有用户需要注册,登录以及忘记密码。这也是为什么需要收发邮件。这里最简单的方式是使用mailjet或者你自己的企业邮箱的SMTP设置。如果你的论坛每月新增用户超过6000个,那么你可能需要考虑更高级的服务,例如Sendgrid。
下面我将以Mailjet邮箱(免费的)为例,这里需要备注的是,千万不要使用qq邮箱。qq邮箱并不支持这类邮件。
首先打开mailjet.com,然后注册。注册完毕之后登陆,会要求输入一些企业信息。这些东西都是按照个人情况填写即可。
设置完毕之后,需要打开邮箱,激活账号。
接下来选择自己的角色,开发者Developer
发邮件的方式选择SMTP Relay
最后我们可以看到SMTP的账号信息了。 你需要把这些信息记录下来,我们等下设置discourse的时候需要用到。
接下来点击右下角下一步,保存了设置之后,回到首页。也可以点击右上角进行回到首页。我们下一步是需要绑定域名,为此我们需要进入用户中心。在左上角选中自己,点击account setting,然后点击Add a sender or domain。
然后点击Add Domain。
在Label和domain地方输入自己的域名。我的就是xmg180.com。
保存之后,需要验证域名。我们会选择选项2的方式,也就是通过TXT记录来验证。
我们回到去阿里云的后台,找到域名的DNS设置。点击添加记录。
根据Mailjet的要求,添加一个TXT记录,输入的参数需要和mailjet提供的一致。
保存记录之后,回到Mailjet,然后点击check now进行验证。
这样子就添加域名成功了。我们可以看得到域名这个地方显示着Active。
如何搭建一个和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#
安装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会引导你创建第一个账户,成为超级管理员。然后你的论坛就正式开启了。
注册成功之后,会通过你刚才所设置的邮箱发送邮件给你。你会收到下述的这个邮件。
点击链接,正式激活你的论坛。在初始化过程中,如果卡死了,可以选择点击Maybe later。我就遇到了这种情况。
到此,和Anker一样的论坛就搭建完成了。Anker还自行添加了自己的风格,我们当然也可以。
如果你想要管理用户和修改风格的话,或者是学习Anker和亚马逊官方的论坛风格,你只需要在右上角点击三条杠,然后找到Admin和Setting即可。