如何在 CentOS 6.4 x64 VPS 上安装 Discourse

金钱(警告)

状态: 被剥夺

本文涵盖了不再受支持的 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!

Submitted by: Jim Reardon
Published At
Categories with 技术
comments powered by Disqus