对于不熟悉ruby的来说,搭建discourse真的还有些费劲,所幸官网推荐有docker方式,这下就简单了很多。但在搭建过程中也遇到过一些问题,这里记录一下。
前提环境:
1. 阿里云服务器
2. Ubuntu系统
1. 搭建步骤
按照官方给出的步骤,可以参考:https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md
简化如下:
* 安装docker
wget -qO- https://get.docker.com/ | sh
* 安装git
apt-get install git
* 下载discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
* 配置并启动
./discourse-setup
(设置说明)
Hostname for your Discourse? // 填写解析到该服务器的域名
Email address for admin account(s)? // 填写管理员账户邮箱(任意合法邮箱均可),启动完成后可以设置论坛信息
SMTP server address? // stmp地址
SMTP port? // smtp端口
SMTP user name? // smtp邮箱账户
SMTP password? // smtp邮箱密码或者授权码
* 至此,启动完成。
结尾输出信息如下:
.........
184:M 02 Jul 2019 04:48:33.630 * DB saved on disk
184:M 02 Jul 2019 04:48:33.630 # Redis is now ready to exit, bye bye...
2019-07-02 04:48:33.654 UTC [68] LOG: database system is shut down
sha256:858287958690be4556509f25bcffbc3561531c5b15dc8ebc8da0292006472b7c
cbe60da5f072c6beee6bfcba7df62ff46c6bb16032ac54ee28d65f99c0fb805b
Removing old container
+ /usr/bin/docker rm app
app
+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_HOSTNAME=域名 -e DISCOURSE_DEVELOPER_EMAILS=管理员邮箱 -e DISCOURSE_SMTP_ADDRESS=smtp.mxhichina.com -e DISCOURSE_SMTP_PORT=80 -e DISCOURSE_SMTP_USER_NAME=smtp邮箱 -e DISCOURSE_SMTP_PASSWORD=smtp邮箱密码或授权码 -e LETSENCRYPT_ACCOUNT_EMAIL=smtp邮箱 -h cc-app -e DOCKER_HOST_IP=127.0.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:28:80:5e:49:20 local_discourse/app /sbin/boot
9f725877049fa84f2bac39bd06767a71b41b2c772cd644a8e16be325ef651614
root@cc:/var/discourse#
root@cc:/var/discourse#
root@cc:/var/discourse#
打开浏览器输入域名,即可进入论坛的管理员设置界面,按步骤一步一步走下去就可以了,后面就可以正常注册、登录、发帖了
2. 注意事项
* 官方推荐Linux为Ubuntu 18.04 LTS x64,试了centos反正不怎么顺利,后面换了Ubuntu还挺顺利的
* smtp设置,本人试过QQ邮箱和阿里云邮箱,都能正常使用。其中
QQ smtp信息: smtp.qq.com/587
阿里云smtp信息: smtp.mxhichina.com/465
* 在服务器上通过curl命令访问时,若出现如下错误:curl: (56) Recv failure: Connection reset by peer,可以检查一下加密是否开启,vi ./containers/app.yml , (yml文件格式严谨,即使多余的空格也不要随便乱删)
A> 去掉下面这行中的井号
#DISCOURSE_SMTP_ENABLE_START_TLS: true
变成:
DISCOURSE_SMTP_ENABLE_START_TLS: true
B> 再去掉下面这行中的井号, 且修改邮箱
#- exec: rails r "SiteSetting.notification_email='xx@qq.com'"
变成:
- exec: rails r "SiteSetting.notification_email='xx@qq.com'"
C> 然后重启:./launcher enter app
* 阿里云邮箱加密方式不能正常发送验证信息,可以替换为非加密方式,具体操作,打开配置app.yml,修改端口465为80(25端端口已被阿里云邮箱禁掉),注释加密开启的那一行(DISCOURSE_SMTP_ENABLE_START_TLS: true),重启即可。
* 配置文件路径:/var/discourse/containers/app.xml
该文件最开始是配置/启动脚本运行时自动从/var/discourse/samples/standalone.yml文件拷贝过来,若app.xml损坏或丢失,可以自己手动拷贝过来。并手动修改配置文件中的管理员账户/smtp等信息,然后重启程序也能正常启动论坛网站。
* 日志文件路径:/var/discourse/shared/standalone/log/rails/production.log
3. 链接推荐
关于discourse安装说明比较好的介绍推荐连接: