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
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