说明:本站制作的旧版中文安装指南是根据外国网友的文档制作的,当时还没有官方安装文档。后来官方发布了正式的安装文档,因此本站根据官方指南重新制作了中文安装文档。
当前版本:0.2.0,最近更新于 2013.7.8。
0 相关说明
Discourse 意为“谈话”,是由 Stack Overflow 的联合创始人 Jeff Atwood 推出的下一代开源论坛程序,关于它的介绍可以看看 OSChina 和 36Kr 的报道。目前,网络上还没有一份详细、全面的中文 Discourse 安装指南,ofGEEK 特此整理编写本文,希望能够对需要的人有所帮助。
由于 Discourse 仍在不断更新变化之中,本指南也将随之不断调整,以适应最新的系统安装环境。更多相关信息与讨论,请访问 ofGEEK 讨论区 的 Discourse 分类(这个讨论区就是用 Discourse 搭建而成的)。
本指南在以下环境安装成功:
- 一台 KVM VPS 服务器
- 内存 1G (Discourse 官方推荐的最小值)
- Ubuntu 12.10 x86 操作系统
1 准备安装环境
注意:为了操作的安全,不推荐直接使用 root 账户安装 Discourse,建议在 VPS 上增加一个用户(本文设为 admin,你可以任意选择喜欢的名称),专门用于安装 Discourse。本文中,VPS 的主机名即为域名 ofgeek.com,读者请根据实际情况自行修改。
1.1 登录 VPS
用 root 登录 VPS,创建新用户 admin,并将其加入 sudo 组,以获取管理员权限。(关于登录 VPS 的方法,本文不做详细介绍,如有需要请自行查阅。Mac OS X 或 Linux 用户可以直接打开终端使用 ssh 进行连接。Windows 用户推荐使用 Xshell,非商业用途可免费使用)。
2 |
$ sudo adduser admin sudo |
退出 root 账户,用 admin 账户重新登录 VPS。
更新 VPS 的操作系统:
1 |
$ sudo apt-get update && sudo apt-get -y upgrade |
如果更新过程中,系统提示是否更新 grub 菜单,请选择不更新。
1.2 安装 Discourse 所需的包文件
1 |
$ sudo tasksel install openssh-server |
2 |
$ sudo tasksel install mail-server |
3 |
$ sudo tasksel install postgresql-server |
在安装过程中,会弹出 Postfix 的配置界面,它是 Linux 系统中的邮件配置程序。如果你决定使用同一台 VPS 来发送邮件,则选择”Internet Site”,本例中,我们将使用第三方提供的邮件发送服务,所以选择“Satellite system”。然后在下一步输入你自己的域名,在本文中则是 ofgeek.com。具体的邮件设定将在下文有详细介绍。
继续安装其它所需的包文件:
1 |
$ sudo apt-get -y install build-essential libssl-dev libyaml-dev git libtool libxslt-dev libxml2-dev redis-server libpq-dev gawk curl pngcrush |
1.3 设定主机名称
这里需要用到文本编辑器,你可以根据自己的喜好使用 vi、emacs 或其它,Ubuntu 12.10 系统里默认的是 nano。
在第一行下面加入你的 VPS 的 IP 和域名,本文修改成:
确认无误后,按 Ctrl+x 保存,按 y 确认后退出。
然后再修改 hostname:
1 |
$ sudo nano /etc/hostname |
本文修改成:
1.4 安装最新版的 Nginx
先删除 VPS 自带的老版本 nginx(如果你的 VPS 没有安装 nginx 则无需这一步):
1 |
$ sudo apt-get remove '^nginx.*$' |
更新软件源:
1 |
$ cat <<'EOF' | sudo tee -a /etc/apt/sources.list |
3 |
deb http://nginx.org/packages/ubuntu/ precise nginx |
4 |
deb-src http://nginx.org/packages/ubuntu/ precise nginx |
加入 nginx 密钥:
1 |
$ curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add - |
安装 nginx:
1 |
$ sudo apt-get update && sudo apt-get -y install nginx |
1.5 安装 RVM
1 |
$ \curl -s -S -L https://get.rvm.io | sudo bash -s stable |
2 |
$ sudo adduser $USER rvm |
4 |
$ . /etc/profile.d/rvm.sh |
如果系统报权限不够,则运行
1 |
$ rvm --autolibs=read-fail requirements |
根据报告中的说明,单独安装所需的包,然后再继续安装。
1.6 安装 Ruby 2.0 和打包程序
到这里,Discourse 的安装环境就准备完成了。
2 安装 Discourse
2.1 创建 discourse 用户
按照官方的教程,我们将在 VPS 上再创建一个名为 discourse 的用户,专门用于安装 discourse 论坛。
1 |
$ sudo adduser --shell /bin/bash discourse |
2 |
$ sudo adduser discourse rvm |
为用户 discourse 赋予操作数据库的权限:
1 |
$ sudo -u postgres createuser -s discourse |
2 |
$ sudo -u postgres psql -c "alter user discourse password '[你自己设定的密码]';" |
切换到 discourse 用户:
2.2 下载并安装 discourse 源码
1 |
$ git clone git://github.com/discourse/discourse.git |
3 |
$ git checkout latest-release |
4 |
$ bundle install --deployment --without test |
最后这一步耗时较长,请耐心等待。安装完毕后,就可以开始配置 discourse 了。
2.3 修改 Discourse 的相关配置文件
1 |
$ cd ~/discourse/config |
2 |
$ cp database.yml.production-sample database.yml |
3 |
$ cp redis.yml.sample redis.yml |
4 |
$ cp discourse.pill.sample discourse.pill |
5 |
$ cp environments/production.rb.sample environments/production.rb |
2.3.1 修改 database.yml
需要修改的内容包括:
实际上,你还可以修改数据库的名称,不过这里不建议新手修改。 本文修改后的 database.yml 如下,请结合你的实际情况加以修改:
03 |
database: discourse_prod |
04 |
username: discourse # if using username/password auth |
05 |
password: [你自己设定的密码] # if using username/password auth |
06 |
# host: dbhost # if not localhost |
07 |
pool: 5 # size of DB connection pool *per process* |
09 |
# db_id: 0 # database ID if hosting multiple sites |