Thứ tư, 11/09/2013 | 00:00 GMT+7

Cách cài đặt Discourse trên VPS CentOS 6.4 x64


Giới thiệu về Discourse

Discourse là một nền tảng thảo luận open-souce mới. Được thiết kế như một 'khởi động lại' hoàn chỉnh các diễn đàn thảo luận, nó có một stream khác với các diễn đàn thông thường và một hệ thống tin cậy được xây dựng sẵn.

Bước 1: Cấu hình hệ điều hành


Có một số yêu cầu để chạy Discourse; hướng dẫn này sẽ giả sử một VPS Centos 6 mới.

Thêm không gian swap

Nếu bạn đang chạy một VPS có RAM dưới 2 GB, bạn cần bật tính năng swap trên VPS của bạn . Nếu bạn không làm như vậy, một số bước xây dựng có thể bị thất bại.

Hướng dẫn này có hướng dẫn cách bật tính năng swap cho CentOS 6. Đối với VPS nhỏ hơn, hãy thêm ít nhất 1 GB dung lượng swap .

Tạo một user local , không phải root

Hầu hết các bước sẽ được chạy với quyền user không phải root có quyền truy cập sudo. Hướng dẫn này sẽ hướng dẫn bạn cách tạo account user và cấp cho nó quyền .

Tạo một user không phải root sẽ chạy Discourse

Bạn cũng cần một account user để chạy Discourse. Tốt nhất đây là một account khác với account của bạn; discourse sẽ là một lựa chọn tốt.

Thêm kho EPEL

EPEL là viết tắt của Extra Packages for Enterprise Linux và nó có một số gói ta cần cài đặt không phải là một phần của repository CentOS cơ sở.

Đăng nhập với quyền user local của bạn và chạy:

sudo su -c 'rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm'

Cài đặt các gói bắt buộc

Đây là những yêu cầu cho Diễn văn hoặc những yêu cầu của nó.

sudo 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

Cài đặt và khởi động Redis

Redis là một repodata giá trị khóa open-souce được sử dụng bởi Discourse.

sudo yum install redis.x86_64
sudo chkconfig --add redis
sudo chkconfig --level 345 redis on
sudo /etc/init.d/redis start

Bước 2: Cài đặt ngnix


Ngnix là một web server nhẹ và Reverse Proxy sẽ được sử dụng để đảo ngược các kết nối proxy tới Discourse.

Thêm repository

ngnix không có trong repository lưu trữ CentOS trung tâm, vì vậy bạn sẽ phải thêm repository của họ cho yum để có thể cài đặt ngnix.

Tạo file văn bản /etc/yum.repos.d/nginx.repo :

sudo emacs /etc/yum.repos.d/nginx.repo

Dán vào nội dung này:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

Sau khi cài đặt xong, bạn cần làm mới danh sách gói yum và sau đó cài đặt ngnix.

sudo yum upgrade
sudo yum install nginx.x86_64

Bước 3: Cài đặt PostgreSQL


Discourse sử dụng PostgreSQL cho phần backend dữ liệu của nó. Trong khi EPEL chứa các gói cho PostgreSQL, nó khá lỗi thời. Điều này sẽ cài đặt một gói mới hơn từ kho của PostgreSQL.

Vô hiệu hóa repository CentOS

Trước tiên, ta sẽ yêu cầu bạn không xem xét các gói từ repository CentOS cốt lõi. Để thực hiện việc này, hãy chỉnh sửa file /etc/yum.repos.d/CentOS-Base.repo .

sudo emacs /etc/yum.repos.d/CentOS-Base.repo

Thêm dòng:

exclude=postgresql*

trong phần [base][updates] của file này.

Cài đặt repository PostgreSQL

Bây giờ ta sẽ đăng ký repository của PostgreSQL với yum.

curl -O http://yum.postgresql.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpm
sudo rpm -ivh pgdg-centos91-9.1-4.noarch.rpm 

Cài đặt server PostgreSQL

Thao tác này sẽ cài đặt server và một số gói phát triển mà Discourse cần, khởi động server , khởi tạo database và đặt nó bắt đầu khi server khởi động lại.

sudo yum install postgresql91-server.x86_64 postgresql91-contrib.x86_64 postgresql91-devel.x86_64

sudo service postgresql-9.1 initdb
sudo service postgresql-9.1 start
sudo chkconfig postgresql-9.1 on

Cấp quyền cho user

Bây giờ hãy nói với PostgreSQL về user của ta và cấp cho họ quyền truy cập database .

sudo -u postgres createuser -s root
sudo -u postgres createuser -s discourse

Bước 4: Cài đặt rvm và Ruby


Ruby và rvm sẽ được cài đặt trong ngữ cảnh một user cho user diễn ngôn.

Cài đặt rvm

Trở thành user diễn ngôn và cài đặt nhánh ổn định của rvm:

sudo su - discourse
\curl -s -S -L https://get.rvm.io | bash -s stable

rvm sẽ thêm một số cài đặt môi trường vào tập lệnh đăng nhập cho user diễn ngôn; đảm bảo rằng những điều này đã được cài đặt , dễ dàng nhất để đăng xuất sau đó đăng nhập lại.

exit
sudo su - discourse

Xác minh gói rvm yêu cầu đã được cài đặt

Điều này sẽ đảm bảo môi trường được cài đặt chính xác và rvm sẵn sàng hoạt động. , với quyền là user diễn ngôn, hãy chạy:

rvm --autolibs=read-fail requirements

Điều này sẽ trả lại rằng không có gói bổ sung nào được yêu cầu bởi rvm.

Cài đặt ruby

Với quyền là user diễn ngôn, hãy cài đặt môi trường ruby local và trình gói:

rvm install 2.0.0
rvm use 2.0.0 --default
gem install bundler

Tinh chỉnh cấu hình ruby

Theo mặc định, trình tạo đá quý sẽ không thể tìm thấy các thư viện và mã binary hỗ trợ cho server PostgreSQL của hệ thống. Để đá quý này được xây dựng, điều này sẽ yêu cầu gói truyền các đối số dòng lệnh khi nó xây dựng thư viện PostgresSQL.

Vẫn với quyền là user diễn ngôn, hãy chạy:

bundle config build.pg --with-pgsql-lib=/usr/pgsql-9.1/lib --with-pg-config=/usr/pgsql-9.1/bin/pg_config

Bước 5: Cài đặt và cấu hình Discourse


Bây giờ hệ thống đã sẵn sàng để xây dựng và chạy Discourse.

Xây dựng diễn văn

Với quyền là user diễn ngôn, hãy kéo nguồn Diễn từ xuống bằng cách sử dụng git. Thao tác này sẽ sao chép cây git Discourse sang một discourse folder con:

git clone git://github.com/discourse/discourse.git discourse

Sau khi đã sao chép nguồn local , hãy xây dựng Discourse:

cd discourse
bundle install --deployment --without test

Cấu hình Diễn văn

Sao chép các file cấu hình ví dụ để Discourse sẽ tìm thấy chúng:

cd config
cp database.yml.production-sample database.yml
cp redis.yml.sample redis.yml
cp discourse.pill.sample discourse.pill
cp environments/production.rb.sample environments/production.rb

Bạn cần chỉnh sửa database.yml . Thay đổi dòng host_names thành tên server của server của bạn.

Tạo nên database

Trở lại folder diễn ngôn và khi user diễn ngôn chạy:

cd ~/discourse
createdb discourse_prod
RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ENV=production rake db:migrate
RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ENV=production rake assets:precompile

Bước biên dịch trước có thể mất vài phút mà không in bất kỳ kết quả nào ra màn hình, vì vậy nó có thể xuất hiện như quá trình bị treo.

Sửa quyền

Theo mặc định, web server sẽ không thể truy cập vào folder diễn ngôn. Để cấp nhiều quyền hơn, hãy chạy lệnh này với quyền là user diễn ngôn:

cd ~
chmod og+rx /home/discourse

Cài đặt và cấu hình bluepill

Bluepill là một công cụ giám sát quá trình mà Discourse sử dụng để giám sát chính nó. Cài đặt và cấu hình nó để bắt đầu khi server khởi động :

gem install bluepill
echo 'alias bluepill="NOEXEC_DISABLE=1 bluepill --no-privileged -c ~/.bluepill"' >> ~/.bash_profile
rvm wrapper $(rvm current) bootup bluepill
rvm wrapper $(rvm current) bootup bundle

Chạy diễn văn

Diễn văn bây giờ đã sẵn sàng để bắt đầu. Để bắt đầu Diễn văn, hãy chạy:

RUBY_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

Bạn cũng nên cấu hình Discourse để bắt đầu khi server khởi động bằng cách thêm nó vào crontab của user nghị luận. Mở crontab của bạn để chỉnh sửa:

crontab -e

Và dán dòng sau vào editor bật lên:

@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 hiện đang chạy, nhưng ngnix cần được cấu hình để chuyển tiếp các yêu cầu đến server Discourse đang chạy trước khi nó trả lời các yêu cầu được gửi đến tên server của bạn.

Bước 7: Cấu hình ngnix


Bây giờ, hãy cấu hình ngnix để trỏ đến cá thể Discourse.

Đăng nhập lại và thực hiện các lệnh này với quyền user local , không phải với quyền discourse .

Cấu hình ngnix cơ sở

Có một thay đổi nhỏ mà bạn cần thực hiện đối với cấu hình. Mở file /etc/nginx/nginx.conf :

sudo emacs /etc/nginx/nginx.conf

Tìm phần http của file và thêm dòng sau:

server_names_hash_bucket_size 64;

Cấu hình nginx cho Discourse

Discourse đi kèm với một file cấu hình nginx mẫu. Sao chép cấu hình Discourse ngnix ví dụ vào nơi ngnix mong đợi nó:

sudo cp /home/discourse/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf

Có một số thay đổi cần được thực hiện đối với file này. Mở file `/etc/nginx/conf.d/discourse.conf ':

sudo emacs /etc/nginx/conf.d/discourse.conf
  • Thay đổi server_name thành tên server của bạn.

  • Thay đổi các đường dẫn socket để phản ánh nơi Discourse được cài đặt. Chúng sẽ trông như thế này:

upstream discourse {
  server unix:/home/discourse/discourse/tmp/sockets/thin.0.sock;
  server unix:/home/discourse/discourse/tmp/sockets/thin.1.sock;
  server unix:/home/discourse/discourse/tmp/sockets/thin.2.sock;
  server unix:/home/discourse/discourse/tmp/sockets/thin.3.sock;
}
  • Thay đổi đường dẫn cơ sở trong file . Tìm một dòng có đường dẫn /var/www/discourse/public và thay thế dòng này bằng đường dẫn chính xác của ta , /home/discourse/discourse/public .

Bây giờ khởi động lại ngnix để nhận các thay đổi cấu hình:

sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx start

Lệnh dừng có thể không thành công nếu ngnix hiện không chạy, nhưng lệnh bắt đầu sẽ thành công.

Bước 8: Sử dụng Discourse!


Discourse hiện đang chạy và phản hồi các yêu cầu tại tên server của bạn. Điều cuối cùng bạn cần làm là cài đặt account quản trị để cấp cho bạn quyền quản lý version Discourse.

Tạo user Discourse của bạn

Mở trang web Discourse của bạn bằng cách chuyển đến tên server trong trình duyệt web . Tạo một account user cho chính bạn và ghi lại địa chỉ email mà bạn đăng ký.

Tự cấp cho mình các quyền quản trị

Quay trở lại vỏ của bạn. Trở thành user diễn ngôn và đưa ra một console rails được kết nối với version Diễn ngôn:

cd ~/discourse
RAILS_ENV=production bundle exec rails c

Thao tác này sẽ đưa bạn vào console Rails nơi bạn có thể chạy các lệnh. Các lệnh này sẽ cấp cho bạn quyền truy cập quản trị; thay thế địa chỉ email bằng địa chỉ email bạn đã đăng ký:

me = User.find_by_username_or_email('myemailaddress@me.com')
me.activate
me.admin = true
me.save

Bạn cũng có thể đặt user này làm địa chỉ liên hệ mặc định:

SiteSetting.site_contact_username = me.username

Nhập exit để thoát khỏi console Rails.

Xác minh bạn hiện là administrator

Quay lại version Discourse của bạn trong trình duyệt web . Nếu bạn chưa đăng nhập bằng account bạn đã đăng ký, hãy đăng nhập lại. Đến đây bạn có thể cấu hình version Diễn thuyết theo ý thích của bạn .

Xin chúc mừng! Bạn đã cài đặt Discourse. Huzzah!

<div class = “author”> Gửi bởi: <a href=osystemhttp://jimreardon.us/[> Jim Reardon </a> </div>


Tags:

Các tin liên quan

Cách cài đặt ejabberd trên VPS CentOS 5 và CentOS 6
2013-09-04
Cách đặt chính sách mật khẩu trên VPS CentOS 6
2013-09-03
Cách biên dịch Node.js với NPM từ nguồn trên CentOS 6
2013-08-21
Cài đặt và cấu hình Zenoss trên server riêng ảo CentOS
2013-07-17
Cách cài đặt Laravel 4 trên VPS CentOS 6
2013-07-15
Cách chuyển đổi video bằng FFMpeg trên CentOS 6
2013-05-31
Cách tạo plugin Nagios với Bash trên CentOS 6
2013-04-29
Cách tạo plugin Nagios với Perl trên CentOS 6
2013-04-29
Cách tạo plugin Nagios với Ruby On CentOS 6
2013-04-29
Cách tạo bản backup Off-Site cho trang web của bạn với Rsync trên Centos 6
2013-04-18