登录    关于
马育民老师的博客

马育民的博客

discourse+Ubuntu安装详解

discourse是最近比较火的论坛软件,有n多特性,再次不多说。再次详细说下我在阿里云的Ubuntu系统上安装discourse的步骤。

硬件

推荐双核 CPU
最少 1 GB 内存(加上交换空间),推荐至少 2 GB

软件

docker
nginx服务器
ruby环境
postgresql数据库
redis数据库

需要安装的软件

需要手动安装的有docker、ruby,其他软件自动安装部署

1. 安装前的准备

更新apt-get源

sudo apt-get update

2. 安装ruby

sudo apt-get install ruby

3. 安装docker

sudo apt-get install docker.io

在国内下载docker的资源,比较慢,需要设置docker下载加速器

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b011f5ee.m.daocloud.io

重启docker

service docker restart

测试docker是否好用

sudo docker run hello-world

4. 安装discourse

创建目录

sudo mkdir /var/discourse

git克隆配置文件

git clone https://github.com/discourse/discourse_docker.git /var/discourse

进入目录,并复制文件

cd /var/discourse

cp samples/standalone.yml containers/app.yml

编辑app.yml

vim containers/app.yml

4.1 添加中文模板:

web.china.template.yml

结果如下:

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/sshd.template.yml"
  - "templates/web.template.yml"
  - "templates/web.china.template.yml"

4.2 修改params的version为stable,结果如下

version: stable

4.3 修改env的 DISCOURSE_DEFAULT_LOCALE为 zh_CN,结果如下

 DISCOURSE_DEFAULT_LOCALE: zh_CN

4.4 设置域名或IP,修改env的 DISCOURSE_HOSTNAME为 域名或外网ip,结果如下

DISCOURSE_HOSTNAME: '192.168.1.1'
注意:

此处必须配置域名,如果没有域名就配置ip,如果是阿里云就配置外网ip,安装时会报错

4.5 修改env的邮箱相关配置,结果如下

DISCOURSE_DEVELOPER_EMAILS: '53@51jsoft.com'
DISCOURSE_SMTP_ADDRESS: smtp.exmail.qq.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: 53@51jsoft.com
DISCOURSE_SMTP_PASSWORD: 密码,不要有特殊字符,比如#符号

在邮件配置的下面,增加配置(不知道干什么用,囧)

DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
注意:

此处的邮箱配置必须要正确,也必须配置,否则安装会报错
报错信息如下:

Pups::ExecError: /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end' failed with return #<Process::Status: pid 201 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:108:in `spawn'
exec failed with the params "/usr/local/bin/ruby -e 'if ENV[\"DISCOURSE_SMTP_ADDRESS\"] == \"smtp.example.com\"; puts \"Aborting! Mail is not configured!\"; exit 1; end'"

4.6 设置发邮件的邮箱(非常重要)

用户注册时,会给新注册的用户发送验证邮件,把下面代码前面的#符号去掉,并做修改,结果如下

   - exec: rails r "SiteSetting.notification_email='53@51jsoft.com'"
注意:

discourse注册新用户时必须提供邮箱,也必须会给新用户发验证邮件,所以此处一定要配置好

注意:

此处的邮箱必须与上面相同,否则在【设置】中测试发邮件时会提示发送成功,但在【设置】-【邮件】-【跳过】中查看时提示501错,即发件人邮箱与发送邮箱不一致,错误如下:

注意:

阿里云服务器限制25端口号,所以不能使用25端口号发送邮件,所以不能使用163邮件服务器,ssl是另一个端口号,是可以发送的,但是我不会配置,囧!解决方法是用端口号不是25的邮件smtp服务,比如qq企业邮箱

[Sender] 501 mail from address must be same as authorization user

5. 容器操作

初始化:

./launcher bootstrap app

此处需要下载很多文件,所以时间较长,具体看网速,预计8分钟左右。

启动:

sudo ./launcher start app

6. 添加管理员

默认没有管理员,所以初始化后添加管理员

sudo apt-get install rake
#角色管理:创建
rake admin:create
#按照提示输入邮箱,密码等
exit

7. 修改app.yml文件后的操作

修改app.yml文件后,必须执行以下操作

./launcher rebuild app

然后再启动

感谢以下链接,站在巨人的肩膀上,才能看得更高,走的更远!
https://meta.discoursecn.org/t/topic/26
http://bang.ykit.cn/3144.html

http://bang.ykit.cn/3138.html

https://zhuanlan.zhihu.com/p/23461288

http://www.360doc.com/content/15/0209/14/982782_447454819.shtml

http://blog.csdn.net/mickjoust/article/details/51578629

什么是docker
http://www.sohu.com/a/133009553_629429


原文出处:https://www.malaoshi.top/show_1C7ZfLP66Ki.html