discourse+Ubuntu安装详解 作者:马育民 • 2017-08-30 17:24 • 阅读:10555 discourse是最近比较火的论坛软件,有n多特性,再次不多说。再次详细说下我在阿里云的Ubuntu系统上安装discourse的步骤。 ## 硬件 推荐双核 CPU 最少 1 GB 内存(加上交换空间),推荐至少 2 GB ##软件 docker nginx服务器 ruby环境 postgresql数据库 redis数据库 ##需要安装的软件 需要手动安装的有docker、ruby,其他软件自动安装部署 ##1. 安装前的准备 更新apt-get源 ```shell sudo apt-get update ``` ##2. 安装ruby ```shell sudo apt-get install ruby ``` ##3. 安装docker ```shell sudo apt-get install docker.io ``` 在国内下载docker的资源,比较慢,需要设置docker下载加速器 ```shell curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b011f5ee.m.daocloud.io ``` 重启docker ```shell service docker restart ``` 测试docker是否好用 ```shell sudo docker run hello-world ``` ##4. 安装discourse 创建目录 ```shell sudo mkdir /var/discourse ``` git克隆配置文件 ```shell git clone https://github.com/discourse/discourse_docker.git /var/discourse ``` 进入目录,并复制文件 ```shell cd /var/discourse cp samples/standalone.yml containers/app.yml ``` 编辑app.yml ```shell vim containers/app.yml ``` ####4.1 添加中文模板: ```shell web.china.template.yml ``` 结果如下: ```shell 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,结果如下 ```shell version: stable ``` ####4.3 修改env的 DISCOURSE_DEFAULT_LOCALE为 zh_CN,结果如下 ```shell DISCOURSE_DEFAULT_LOCALE: zh_CN ``` ####4.4 设置域名或IP,修改env的 DISCOURSE_HOSTNAME为 域名或外网ip,结果如下 ```shell DISCOURSE_HOSTNAME: '192.168.1.1' ``` #####注意: >此处必须配置域名,如果没有域名就配置ip,如果是阿里云就配置外网ip,安装时会报错 ####4.5 修改env的邮箱相关配置,结果如下 ```shell 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: 密码,不要有特殊字符,比如#符号 ``` 在邮件配置的下面,增加配置(不知道干什么用,囧) ```shell DISCOURSE_SMTP_AUTHENTICATION: login DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none ``` #####注意: >此处的邮箱配置必须要正确,也必须配置,否则安装会报错 报错信息如下: ```shell 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 # 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 设置发邮件的邮箱(非常重要) 用户注册时,会给新注册的用户发送验证邮件,把下面代码前面的#符号去掉,并做修改,结果如下 ```shell - exec: rails r "SiteSetting.notification_email='53@51jsoft.com'" ``` #####注意: >discourse注册新用户时必须提供邮箱,也必须会给新用户发验证邮件,所以此处一定要配置好 #####注意: >此处的邮箱必须与上面相同,否则在【设置】中测试发邮件时会提示发送成功,但在【设置】-【邮件】-【跳过】中查看时提示501错,即发件人邮箱与发送邮箱不一致,错误如下: #####注意: >阿里云服务器限制25端口号,所以不能使用25端口号发送邮件,所以不能使用163邮件服务器,ssl是另一个端口号,是可以发送的,但是我不会配置,囧!解决方法是用端口号不是25的邮件smtp服务,比如qq企业邮箱 ```shell [Sender] 501 mail from address must be same as authorization user ``` ##5. 容器操作 ####初始化: ```shell ./launcher bootstrap app ``` 此处需要下载很多文件,所以时间较长,具体看网速,预计8分钟左右。 ####启动: ```shell sudo ./launcher start app ``` ##6. 添加管理员 默认没有管理员,所以初始化后添加管理员 ```shell sudo apt-get install rake #角色管理:创建 rake admin:create #按照提示输入邮箱,密码等 exit ``` ##7. 修改app.yml文件后的操作 修改app.yml文件后,必须执行以下操作 ```shell ./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 原文出处:http://malaoshi.top/show_1C7ZfLP66Ki.html