Discourse là một ứng dụng diễn đàn thảo luận mã nguồn mở và miễn phí có thể được sử dụng như một danh sách gửi thư và phòng trò chuyện. Đây là một nền tảng rất mạnh mẽ và linh hoạt cho phép người dùng đăng nhập bằng Single Sign-On. Nó có thể được tích hợp với WordPress, Google Analytics, Zendesk, Patreon, Slack và nhiều nền tảng khác. Nó hỗ trợ thông báo qua email, trả lời qua email và nhiều phương thức xác thực khác nhau như mạng xã hội và single sign-on. Nó đơn giản, dễ sử dụng, phẳng và đi kèm với bố cục di động tích hợp.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình diễn đàn Discourse trên máy chủ Ubuntu 18.04.
Sau khi máy chủ của bạn được cập nhật, hãy khởi động lại hệ thống để áp dụng tất cả các thay đổi
Tiếp theo, bạn sẽ cần thiết lập FQDN trên máy chủ của mình. Bạn có thể thực hiện bằng lệnh sau:
Tiếp theo, mở tệp /etc/hosts và thêm dòng sau:
Thêm dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, chạy lệnh sau để áp dụng tất cả các thay đổi:
Tiếp theo, bạn sẽ cần cài đặt một số gói cần thiết vào hệ thống của mình. Bạn có thể cài đặt chúng bằng lệnh sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Sau khi cài đặt PostgreSQL, hãy đăng nhập vào bảng điều khiển PostgreSQL bằng lệnh sau:
Tiếp theo, tạo cơ sở dữ liệu và người dùng cho Discourse bằng lệnh sau:
Tiếp theo, kết nối với discoursedb và tạo phần mở rộng hstore và pg_trgm bằng lệnh sau:
Cuối cùng, thoát khỏi PostgreSQL bằng lệnh sau:
Trước tiên, cài đặt GNU privacy guard bằng lệnh sau:
Tiếp theo, nhập public của trình quản lý phiên bản Ruby bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, cài đặt RVM với Ruby và Rails mặc định bằng lệnh sau:
Sau khi cài đặt Ruby và Rails, bạn sẽ cần source RVM scripts. Bạn có thể thực hiện bằng lệnh sau:
Bây giờ bạn có thể xem các phiên bản Ruby bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Đầu ra:
Tiếp theo, hãy kiểm tra bản phát hành ổn định mới nhất của Discourse bằng lệnh sau:
Tiếp theo, hãy cài đặt trình quản lý phụ thuộc Ruby bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, bạn sẽ cần cài đặt thêm một số các gói để biên dịch mã nguồn. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Tiếp theo, cài đặt tất cả các phụ thuộc mà Discourse yêu cầu bằng lệnh sau:
Tiếp theo, đổi tên tệp cấu hình mặc định của Discourse bằng lệnh sau:
Tiếp theo, mở tệp discourse.conf và xác định cài đặt cơ sở dữ liệu của bạn:
Thay đổi các dòng sau:
Lưu và đóng tệp. Sau đó, chỉnh sửa tệp cấu hình môi trường sản xuất bằng lệnh sau:
Thêm dòng sau làm dòng thứ ba
Sau đó, tìm dòng sau:
Và thay thế bằng dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, chuẩn bị Discourse để sản xuất bằng lệnh sau:
Tiếp theo, mở tệp puma.rb bằng lệnh sau:
Tìm dòng sau:
Thay thế bằng dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, tạo thư mục socket và ID tiến trình bằng lệnh sau:
Cuối cùng, khởi động Discourse bằng cách chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, tạo một tài khoản quản trị để truy cập giao diện web Discourse bằng lệnh sau:
Cung cấp email và mật khẩu của bạn như hiển thị bên dưới:
Tiếp theo, khởi động lại dịch vụ Discourse bằng lệnh sau:
Đầu tiên, sao chép tệp cấu hình máy chủ ảo Nginx mẫu bằng lệnh sau:
Tiếp theo, mở tệp discourse.conf bằng lệnh sau:
Thực hiện các thay đổi sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, tạo thư mục bộ nhớ đệm bằng lệnh sau:
Tiếp theo, kiểm tra Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Đầu ra:
Tiếp theo, khởi động lại Nginx để áp dụng tất cả các thay đổi:
Bạn cũng có thể kiểm tra trạng thái của Nginx bằng lệnh sau:
Đầu ra:
Bạn cũng cần sao chép tệp JS sau nếu gặp bất kỳ lỗi nào khi truy cập vào giao diện web Discourse:
Mở trình duyệt web của bạn và nhập URL http://test.example.com. Bạn sẽ được chuyển hướng đến trang sau:
Bây giờ, hãy nhấp vào nút Đăng nhập Vào. Bạn sẽ thấy trang sau:
Bây giờ, hãy cung cấp tên người dùng và mật khẩu của bạn. Sau đó, hãy nhấp vào nút Đăng nhập Vào. Bạn sẽ thấy trang sau:
Bây giờ, bạn có thể khởi động Trình hướng dẫn thiết lập bằng URL http://test.example.com/wizard trên trình duyệt web của mình. Bạn sẽ thấy màn hình Chào mừng ở trang sau:
Bây giờ, hãy chọn ngôn ngữ của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Tại đây, hãy nhập chủ đề của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Tại đây, hãy chọn Công khai và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Tại đây, cung cấp email và trang liên hệ của bạn. Sau đó, nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Tại đây, cung cấp tên công ty và địa chỉ của bạn. Sau đó, nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy chọn chủ đề của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy tải logo của bạn lên và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy chọn Biểu tượng và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy chọn trang chủ của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy chọn Biểu tượng cảm xúc theo ý muốn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy mời nhân viên của bạn tham gia diễn đàn này và nhấp vào nút Tiếp theo. Sau khi quá trình cài đặt hoàn tất, bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút Xong. Bạn sẽ được chuyển hướng đến bảng điều khiển Discourse được hiển thị ở trang sau:
Xin chúc mừng! bạn đã cài đặt và cấu hình thành công diễn đàn Discourse trên máy chủ Ubuntu 18.04.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình diễn đàn Discourse trên máy chủ Ubuntu 18.04.
Yêu cầu
- Máy chủ chạy Ubuntu 18.04.
- Địa chỉ IP tĩnh 192.168.0.101 được thiết lập trên máy chủ của bạn.
- Mật khẩu gốc được thiết lập cho máy chủ của bạn.
Bắt đầu
Trước tiên, bạn sẽ cần cập nhật máy chủ của mình lên phiên bản mới nhất. Bạn có thể thực hiện bằng lệnh sau:
Mã:
apt-get update -y
apt-get upgrade -y
Tiếp theo, bạn sẽ cần thiết lập FQDN trên máy chủ của mình. Bạn có thể thực hiện bằng lệnh sau:
Mã:
hostnamectl set-hostname test.example.com
Mã:
nano /etc/hosts
Mã:
192.168.0.101 test.example.com test
Mã:
hostname -f
Mã:
apt-get install nginx curl git wget unzip nano -y
Cài đặt và cấu hình PostgreSQL
Trước tiên, bạn sẽ cần cài đặt PostgreSQL vào hệ thống của mình. Bạn có thể cài đặt bằng cách chạy lệnh sau:
Mã:
apt-get install postgresql -y
Mã:
sudo -u postgres psql
Mã:
postgres=#CREATE DATABASE discoursedb;
postgres=#CREATE USER discourseuser;
postgres=#ALTER USER discourseuser WITH ENCRYPTED PASSWORD 'password';
postgres=#ALTER DATABASE discoursedb OWNER TO discourseuser;
Mã:
postgres=#\c discoursedb;
postgres=#CREATE PHẦN MỞ RỘNG hstore;
postgres=#CREATE EXTENSION pg_trgm;
Mã:
postgres=#\q
Cài đặt Ruby
Tiếp theo, bạn sẽ cần cài đặt phiên bản Ruby mới nhất vào hệ thống của mình. Bạn có thể cài đặt Ruby bằng RVM.Trước tiên, cài đặt GNU privacy guard bằng lệnh sau:
Mã:
apt-get install gnupg2 -y
Mã:
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Mã:
gpg: keybox '/root/.gnupg/pubring.kbx' createdgpg: key 105BD0E739499BDB: 6 signatures not checked due to missing keysgpg: /root/.gnupg/trustdb.gpg: trustdb đã tạogpg: khóa 105BD0E739499BDB: khóa công khai "Piotr Kuczynski " đã nhậpgpg: khóa 3804BB82D39DC0E3: 103 chữ ký không được kiểm tra do thiếu khóagpg: khóa 3804BB82D39DC0E3: khóa công khai "Michal Papis (ký RVM) " đã nhậpgpg: không tìm thấy khóa đáng tin cậy cuối cùnggpg: Tổng số đã xử lý: 2gpg: đã nhập: 2
Mã:
curl -sSL https://get.rvm.io | bash -s stable --rails
Mã:
source /usr/local/rvm/scripts/rvm
Mã:
rvm list
Mã:
=* ruby-2.6.3 [ x86_64 ]# => - current# =* - current && default# * - default
Cài đặt và cấu hình Discourse
Trước tiên, bạn sẽ cần tải xuống phiên bản mới nhất của Discourse từ kho lưu trữ Git. Bạn có thể tải xuống bằng lệnh sau:
Mã:
cd /var/www/
git clone https://github.com/discourse/discourse.git
Mã:
Đang sao chép vào 'discourse'...remote: Đang liệt kê các đối tượng: 57, xong.remote: Đang đếm các đối tượng: 100% (57/57), xong.remote: Đang nén các đối tượng: 100% (37/37), xong.remote: Tổng cộng 403387 (delta 26), đã sử dụng lại 34 (delta 20), đã sử dụng lại gói 403330Đang nhận các đối tượng: 100% (403387/403387), 267,39 MiB | 235,00 KiB/giây, xong.Đang giải quyết các delta: 100% (252384/252384), xong.Đang kiểm tra tệp: 100% (27055/27055), hoàn tất.
Mã:
cd discourse
git checkout v2.2.4
Mã:
/usr/local/rvm/src/ruby-2.6.3/bin/gem install bundler -v '1.17.3'
Mã:
Đang tải bundler-1.17.3.gemĐã cài đặt bundler-1.17.3 thành côngĐang phân tích tài liệu cho bundler-1.17.3Đang cài đặt tài liệu ri cho bundler-1.17.3Đã cài đặt xong tài liệu cho bundler sau 15 giâyĐã cài đặt 1 gem
Mã:
apt-get install gcc ruby-dev libxslt-dev libxml2-dev zlib1g-dev libpq-dev imagemagick redis-server optipng pngquant jhead jpegoptim gifsicle -y
Mã:
RAILS_ENV=production bundle install --path vendor/bundle/
Mã:
mv config/discourse_defaults.conf config/discourse.conf
Mã:
nano config/discourse.conf
Mã:
db_host = localhostdb_port = 5432db_name = discoursedbdb_username = discourseuserdb_password = passwordhostname = "test.example.com"
Mã:
nano /var/www/discourse/config/environments/production.rb
Mã:
require 'uglifier'
Mã:
config.assets.js_compressor = :uglifier
Mã:
config.assets.js_compressor = Uglifier.new(harmony: true)
Mã:
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake assets:precompile
Mã:
nano /var/www/discourse/config/puma.rb
Mã:
APP_ROOT = '/home/discourse/discourse'
Mã:
APP_ROOT = '/var/www/discourse'
Mã:
mkdir /var/www/discourse/tmp/sockets/
mkdir /var/www/discourse/tmp/pids/
Mã:
RAILS_ENV=production bundle exec puma -C /var/www/discourse/config/puma.rb
Mã:
[29834] Puma đang khởi động ở chế độ cụm...[29834] * Phiên bản 3.11.4 (ruby 2.6.3-p62), tên mã: Love Song[29834] * Số luồng tối thiểu: 8, số luồng tối đa: 32[29834] * Môi trường: phát triển[29834] * Công nhân xử lý: 4[29834] * Đang tải trước ứng dụng[29834] * Đang lắng nghe trên unix:///var/www/discourse/tmp/sockets/puma.sock[29834] ! CẢNH BÁO: Đã phát hiện 3 Luồng bắt đầu khi khởi động ứng dụng:[29834] ! # - /var/www/html/discourse/vendor/bundle/ruby/2.6.0/gems/hiredis-0.6.1/lib/hiredis/ext/connection.rb:19:in `read'[29834] ! # - /var/www/html/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.0.pre.1/lib/message_bus/timer_thread.rb:123:trong `sleep'[29834] ! # - /var/www/discourse/lib/discourse.rb:587:in `sleep'[29834] * Daemonizing...
Mã:
cd /var/www/discourse
RAILS_ENV=production bundle exec rake admin:create
Mã:
Email: [emailprotected]Mật khẩu:Nhập lại mật khẩu:Đảm bảo tài khoản đang hoạt động!Tài khoản đã được tạo thành công với ví dụ tên người dùngBạn có muốn cấp quyền Quản trị viên cho tài khoản này không? (Y/n) YTài khoản của bạn hiện có quyền Quản trị viên!
Mã:
RAILS_ENV=production bundle exec pumactl -P /var/www/discourse/tmp/pids/puma.pid restart
Cấu hình Nginx cho Discourse
Tiếp theo, bạn sẽ cần cấu hình Nginx làm proxy ngược để truy cập giao diện web Discourse trên cổng 80.Đầu tiên, sao chép tệp cấu hình máy chủ ảo Nginx mẫu bằng lệnh sau:
Mã:
cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
Mã:
nano /etc/nginx/conf.d/discourse.conf
Mã:
#upstream discourse {# server unix:/var/www/discourse/tmp/sockets/thin.0.sock;# server unix:/var/www/discourse/tmp/sockets/thin.1.sock;# server unix:/var/www/discourse/tmp/sockets/thin.2.sock;# server unix:/var/www/discourse/tmp/sockets/thin.3.sock;#}upstream discourse { server unix:/var/www/discourse/tmp/sockets/puma.sock; }server_name test.example.com;
Mã:
mkdir -p /var/nginx/cache/
Mã:
nginx -t
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: tệp cấu hình /etc/nginx/nginx.conf đã kiểm tra thành công
Mã:
systemctl restart nginx
Mã:
systemctl status nginx
Mã:
? nginx.service - Máy chủ web hiệu suất cao và máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ CN 2019-05-26 04:19:12 UTC; 29 phút trước Tài liệu: man:nginx(8) Tiến trình: 1052 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Tiến trình: 848 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) PID chính: 1065 (nginx) Nhiệm vụ: 3 (giới hạn: 1114) CGroup: /system.slice/nginx.service ??1065 nginx: tiến trình chính /usr/sbin/nginx -g daemon on; master_process on; ??1066 nginx: tiến trình công nhân ??1067 nginx: tiến trình quản lý bộ nhớ đệm26 tháng 5 04:19:04 ubuntu1804 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...26 tháng 5 04:19:12 ubuntu1804 systemd[1]: nginx.service: Không phân tích được PID từ tệp /run/nginx.pid: Đối số không hợp lệ26 tháng 5 04:19:12 ubuntu1804 systemd[1]: Đã khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Mã:
cp /var/www/discourse/public/assets/_vendor-3eae3eec8fba033cb1b5af6c103a5b8781caa69cf97fe7773ba89ba68980b263.js /var/www/discourse/public/assets/vendor-3eae3eec8fba033cb1b5af6c103a5b8781caa69cf97fe7773ba89ba68980b263.js
Truy cập Giao diện web Discourse
Discourse hiện đã được cài đặt và cấu hình, đã đến lúc truy cập giao diện web Discourse.Mở trình duyệt web của bạn và nhập URL http://test.example.com. Bạn sẽ được chuyển hướng đến trang sau:
Bây giờ, hãy nhấp vào nút Đăng nhập Vào. Bạn sẽ thấy trang sau:
Bây giờ, hãy cung cấp tên người dùng và mật khẩu của bạn. Sau đó, hãy nhấp vào nút Đăng nhập Vào. Bạn sẽ thấy trang sau:
Bây giờ, bạn có thể khởi động Trình hướng dẫn thiết lập bằng URL http://test.example.com/wizard trên trình duyệt web của mình. Bạn sẽ thấy màn hình Chào mừng ở trang sau:
Bây giờ, hãy chọn ngôn ngữ của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Tại đây, hãy nhập chủ đề của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Tại đây, hãy chọn Công khai và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Tại đây, cung cấp email và trang liên hệ của bạn. Sau đó, nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Tại đây, cung cấp tên công ty và địa chỉ của bạn. Sau đó, nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy chọn chủ đề của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy tải logo của bạn lên và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy chọn Biểu tượng và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy chọn trang chủ của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy chọn Biểu tượng cảm xúc theo ý muốn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy mời nhân viên của bạn tham gia diễn đàn này và nhấp vào nút Tiếp theo. Sau khi quá trình cài đặt hoàn tất, bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút Xong. Bạn sẽ được chuyển hướng đến bảng điều khiển Discourse được hiển thị ở trang sau:
Xin chúc mừng! bạn đã cài đặt và cấu hình thành công diễn đàn Discourse trên máy chủ Ubuntu 18.04.