金钱(警告)
状态: 被剥夺
本文涵盖了不再受支持的 CentOS 版本. 如果您目前正在运行运行 CentOS 6 的服务器,我们强烈建议升级或迁移到受支持的 CentOS 版本。
** 原因** : CentOS 6于2020年11月30日到期(EOL)并且不再收到安全补丁或更新。
See Instead : 本指南可能仍然有用作为参考,但可能不会在其他 CentOS 版本上工作. 如果可用,我们强烈建议使用为您正在使用的 CentOS 版本撰写的指南。
美元
关于演讲
Discourse 是一个全新的开源讨论平台,设计为完整的重新启动
讨论论坛,它具有与传统论坛不同的流程和内置的信任系统。
步骤1:配置
运行 Discourse 的前提是少数;本教程将假定新鲜的 Centos 6 VPS。
添加SWAP空间
如果您正在运行具有 2 GB 以下 RAM 的 VPS,则需要在 VPS 上启用交换功能,如果您不这样做,则某些构建步骤可能会失败。
本教程包含有关如何为 CentOS 6 启用交换的说明。
创建本地,非根用户
大多数步骤将作为一个非 root 用户使用 sudo 访问运行。
创建一个运行 Discourse 的非根用户
您还需要一个用户帐户,该帐户将运行 Discourse. 这是最好的,这是一个不同的帐户,你的自己的;‘discourse’将是一个很好的选择。
添加 EPEL 存储库
EPEL 是 Enterprise Linux 附加包的缩写,它包含一些我们需要安装的包,这些包不属于 CentOS 基本存储库。
登录为本地用户并运行:
1sudo su -c 'rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm'
安装所需的包裹
这些是对话或它的先决条件的先决条件。
1sudo yum install gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel ruby-devel libxml2 libxml2-devel libxslt libxslt-devel git
安装并启动 Redis
Redis 是 Discourse 使用的开源关键值数据库。
1sudo yum install redis.x86_64
2sudo chkconfig --add redis
3sudo chkconfig --level 345 redis on
4sudo /etc/init.d/redis start
步骤 2:安装 ngnix
Ngnix 是一个轻量级的 Web 服务器和反向代理,可用于逆转到 Discourse 的代理连接。
添加存储器
ngnix 不在中央 CentOS 存储库中,因此您需要为 yum 添加存储库才能安装 ngnix。
创建一个文本文件 /etc/yum.repos.d/nginx.repo
:
1sudo emacs /etc/yum.repos.d/nginx.repo
点击此内容:
1[nginx]
2name=nginx repo
3baseurl=http://nginx.org/packages/centos/6/$basearch/
4gpgcheck=0
5enabled=1
一旦安装,您需要更新 yum 包列表,然后安装 ngnix。
1sudo yum upgrade
2sudo yum install nginx.x86_64
步骤三:安装PostgreSQL
Discourse 使用 PostgreSQL 作为其数据备份端,虽然 EPEL 包含了 PostgreSQL 的包,但它已经过时了,这将从 PostgreSQL 存储库中安装一个更新的包。
禁用 CentOS 存储器
首先,我们会告诉 yum 不要从核心 CentOS 存储库中查看软件包. 要做到这一点,请编辑文件 /etc/yum.repos.d/CentOS-Base.repo
。
1sudo emacs /etc/yum.repos.d/CentOS-Base.repo
添加线条:
1exclude=postgresql*
此分類上一篇: 此分類下一篇: 此分類下一篇:
安装 PostgreSQL 存储库
现在我们将用 yum 注册 PostgreSQL 存储库。
1curl -O http://yum.postgresql.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpm
2sudo rpm -ivh pgdg-centos91-9.1-4.noarch.rpm
安装 PostgreSQL 服务器
这将安装服务器和一些 Discourse 所需的开发包,启动服务器,初始化数据库,并将其设置为重新启动。
1sudo yum install postgresql91-server.x86_64 postgresql91-contrib.x86_64 postgresql91-devel.x86_64
2
3sudo service postgresql-9.1 initdb
4sudo service postgresql-9.1 start
5sudo chkconfig postgresql-9.1 on
授予用户权限
现在告诉 PostgreSQL 我们的用户,并允许他们访问数据库。
1sudo -u postgres createuser -s root
2sudo -u postgres createuser -s discourse
步骤 4:安装 rvm 和 Ruby
Ruby 和 rvm 将为演讲用户安装在单用户环境中。
安装 rvm
成为演讲用户并安装 rvm 的稳定分支:
1sudo su - discourse
2\curl -s -S -L https://get.rvm.io | bash -s stable
rvm 会为演讲用户添加一些环境设置登录脚本;为了确保这些设置是最容易的退出然后重新登录。
1exit
2sudo su - discourse
验证安装了 rvm requires 包
这将确保环境设置正确, rvm 已准备好工作。
1rvm --autolibs=read-fail requirements
这应该表明 rvm 不需要任何额外的包。
安装 Ruby
作为演讲用户,安装本地 Ruby 环境和包裹:
1rvm install 2.0.0
2rvm use 2.0.0 --default
3gem install bundler
Tweak Ruby 配置
默认情况下,宝石构建程序将无法找到系统的PostgreSQL服务器的支持库和二进制库,以便构建这个宝石,这将告诉包在构建PostgresSQL库时通过命令行参数。
作为演讲用户,运行:
1bundle config build.pg --with-pgsql-lib=/usr/pgsql-9.1/lib --with-pg-config=/usr/pgsql-9.1/bin/pg_config
步骤 5:安装和配置语音
现在系统已经准备好构建和运行Discourse。
构建演讲
作为演讲用户,使用 git 将演讲 git 树克隆到演讲
子文件夹中:
1git clone git://github.com/discourse/discourse.git discourse
一旦本地复制了源,请构建 Discourse:
1cd discourse
2bundle install --deployment --without test
配置演讲
复制示例配置文件,以便 Discourse 找到它们:
1cd config
2cp database.yml.production-sample database.yml
3cp redis.yml.sample redis.yml
4cp discourse.pill.sample discourse.pill
5cp environments/production.rb.sample environments/production.rb
您需要编辑 database.yml
. 将 host_names
行更改为您的服务器的主机名。
创建数据库
返回演讲目录,并当演讲用户运行时:
1cd ~/discourse
2createdb discourse_prod
3RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ENV=production rake db:migrate
4RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ENV=production rake assets:precompile
预编译步骤可能需要几分钟,而不会将任何输出打印到屏幕上,所以它可能看起来像这个过程已经挂了。
固定许可证
默认情况下,Web 服务器将无法访问话语目录. 若要授予更广泛的权限,请作为话语用户运行此操作:
1cd ~
2chmod og+rx /home/discourse
安装和配置Bluepill
Bluepill 是一个流程监控工具,Discourse 使用它来监控它自己。
1gem install bluepill
2echo 'alias bluepill="NOEXEC_DISABLE=1 bluepill --no-privileged -c ~/.bluepill"' >> ~/.bash_profile
3rvm wrapper $(rvm current) bootup bluepill
4rvm wrapper $(rvm current) bootup bundle
奔跑演讲
Discourse 已准备好启动. 要启动 Discourse,运行:
1RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ROOT=/home/discourse/discourse RAILS_ENV=production NUM_WEBS=2 bluepill --no-privileged -c ~/.bluepill load /home/discourse/discourse/config/discourse.pill
您还应该通过将此添加到演讲用户的 crontab 来配置 Discourse 以便在启动时启动。
1crontab -e
然后将以下行粘贴到出现的编辑器中:
1@reboot RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ROOT=/home/discourse/discourse RAILS_ENV=production NUM_WEBS=2 /home/discourse/.rvm/bin/bootup_bluepill --no-privileged -c ~/.bluepill load /home/discourse/discourse/config/discourse.pill
Discourse 现在正在运行,但 ngnix 需要配置为将请求转发到正在运行的 Discourse 服务器之前,它将响应发送到您的主机名称的请求。
步骤 7:设置 ngnix
现在配置 ngnix 以指向 Discourse 实例。
重新登录并执行这些命令作为本地用户,而不是作为对话
。
ngnix 配置
您需要对配置进行一个小小的更改:打开 /etc/nginx/nginx.conf
文件:
1sudo emacs /etc/nginx/nginx.conf
查找文件的http
部分,并添加以下行:
1server_names_hash_bucket_size 64;
设置 nginx 对话
Discourse 附带一个 nginx 配置文件示例. 复制 Discourse ngnix 配置示例到 ngnix 预期的位置:
1sudo cp /home/discourse/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
需要对这个文件进行一些更改,打开 `/etc/nginx/conf.d/discourse.conf' 文件:
1sudo emacs /etc/nginx/conf.d/discourse.conf
- 将「server_name」更改为您的主机名。
- 更改插槽路径以反映 Discourse 安装的位置。
1upstream discourse {
2 server unix:/home/discourse/discourse/tmp/sockets/thin.0.sock;
3 server unix:/home/discourse/discourse/tmp/sockets/thin.1.sock;
4 server unix:/home/discourse/discourse/tmp/sockets/thin.2.sock;
5 server unix:/home/discourse/discourse/tmp/sockets/thin.3.sock;
6}
- 更改文件中的基路径. 寻找一条路径
/var/www/discourse/public
的行,然后用我们的正确路径,/home/discourse/discourse/public
。
现在重新启动 ngnix 以获取配置更改:
1sudo /etc/init.d/nginx stop
2sudo /etc/init.d/nginx start
如果 ngnix 目前没有运行,停止命令可能会失败,但开始命令应该成功。
步骤八:使用语音!
Discourse 现在正在运行并响应您的主机名称的请求. 您需要做的最后一件事是设置一个管理员帐户,以允许您管理 Discourse 实例。
创建你的演讲用户
打开您的 Discourse 网站,在您的 Web 浏览器中导航到您的主机名称. 为自己创建用户帐户并记住您注册的电子邮件地址。
给自己行政优先事项
成为演讲用户,并将连接到演讲实例的 rails 控制台创建:
1cd ~/discourse
2RAILS_ENV=production bundle exec rails c
这些命令将为您提供管理访问权限;将电子邮件地址替换为您注册的电子邮件地址:
1me = User.find_by_username_or_email('[email protected]')
2me.activate
3me.admin = true
4me.save
您还可以将此用户设置为默认联系人:
1SiteSetting.site_contact_username = me.username
输出类型以退出 Rails 控制台。
验证你现在是管理员
回到您的 Web 浏览器中的 Discourse 实例. 如果您未登录为您注册的帐户,请再次登录. 您现在将能够根据您的喜好配置您的 Discourse 实例。
恭喜您!您已经安装了 Discourse. Huzzah!