[Info] Hướng dẫn cài đặt Discourse trên CentOS 7

Discourse là một phần mềm miễn phí để tạo diễn đàn trực tuyến và quản lý danh sách gửi thư. Bài viết này sẽ hướng dẫn bạn cài đặt Discourse trên CentOS 7.

Cài đặt Discourse trên CentOS 7 – Discourse là một phần mềm miễn phí để tạo diễn đàn trực tuyến và quản lý danh sách gửi thư. Nó được tạo ra vào năm 2013 và được viết bằng ngôn ngữ lập trình Ruby và Javascript. Phần mềm diễn văn đã được nhiều tổ chức sử dụng, bao gồm Codeacademy, Udacity, Twitter Developers, Docker Community Forum, v.v.

Trong bài này HOSTVN Chúng tôi sẽ hướng dẫn bạn cài đặt Discourse, định cấu hình Nginx làm proxy ngược cho Discourse và bảo mật Discourse bằng SSL Let’s Encrypt.

Cài đặt Discourse trên CentOS 7

1. Điều kiện tiên quyết

  • VPS có ít nhất 1GB RAM.
  • CentOS 7
  • Tài khoản SMTP – ví dụ: Gmail

2. Cài đặt Discourse trên CentOS 7

2.1. Bước 1: Tạo hoán đổi

Nếu VPS của bạn có nhiều hơn 1GB RAM, bạn có thể bỏ qua bước này. Với VPS chỉ có 1GB RAM, bạn nên tạo thêm 2GB Swap. Để tạo Swap cho CentOS, hãy xem hướng dẫn tạo Swap trên CentOS 7.

2.2. Bước 2: Cài đặt Docker

Docker là một công nghệ container hóa cho phép bạn nhanh chóng xây dựng, kiểm tra và triển khai các ứng dụng dưới dạng các container di động, tự cung cấp năng lượng có thể chạy hầu như ở mọi nơi. Docker đã trở thành tiêu chuẩn thực tế để triển khai vùng chứa và nó là một công cụ cần thiết cho các kỹ sư DevOps.

Để cài đặt Docker trên CentOS 7, hãy làm theo các bước bên dưới

Đầu tiên bạn cần cập nhật hệ thống và cài đặt một số gói cần thiết:

yum -y update 
yum -y install epel-release
yum -y install yum-utils device-mapper-persistent-data lvm2

Tiếp theo, chạy lệnh sau sẽ thêm kho lưu trữ Docker vào hệ thống của bạn:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Sau khi thêm kho lưu trữ Docker, hãy sử dụng lệnh dưới đây để cài đặt Docker

yum -y install docker-ce

Khi Docker được cài đặt, hãy chạy các lệnh sau để khởi động Docker:

systemctl start docker 
systemctl enable docker

Để kiểm tra xem Docker có hoạt động hay không, hãy sử dụng lệnh sau:

systemctl status docker

Screenshot_81

  • Cài đặt Docker Compose

Để cài đặt Docker Compose, bạn sử dụng các lệnh sau

curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Để kiểm tra phiên bản Docker Compose, hãy sử dụng lệnh

docker-compose --version

Screenshot_82

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

Ở bước này, chúng ta sẽ tiến hành cài đặt và cấu hình Discourse. Đầu tiên chúng ta cần cài đặt git cho máy chủ.

yum -y install git

Bây giờ hãy tạo một thư mục mới / var / discourse và tải xuống Trình kết nối diễn văn bằng lệnh git.

mkdir -p /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse

Di chuyển đến thư mục / var / discourse và sao chép trình soạn thảo-docker tập tin standalone.yml đi đến thư mục / var / discourse / container / và đổi tên nó thành app.yml.

cd /var/discourse
cp samples/standalone.yml containers/app.yml

Chỉnh sửa tệp app.yml với Nano

nano containers/app.yml

Theo mặc định, tất cả các yêu cầu HTTP và HTTPS sẽ được xử lý bởi proxy Docker. Trong bài viết này, HOSTVN sẽ sử dụng Nginx cho mục đích này – tất cả các yêu cầu HTTP và HTTPS sẽ được máy chủ web Nginx xử lý.

Vì vậy, chúng ta cần thay đổi cấu hình Ánh xạ cổng Docker. Vùng chứa khóa luận sẽ chỉ có kết nối HTTP và máy chủ sẽ được mở cổng mới 2045 và được ánh xạ tới cảng container 80. Thêm dấu # chuyển đến dòng HTTPS và thay đổi dòng HTTP bằng cổng mới 2045.

Screenshot_102 - cài đặt Discourse trên CentOS 7

  • Định cấu hình db_shared_buffers

Bỏ ký tên # tai dong db_shared_buffers. Đặt tham số db_shared_buffers lên đến 25% dung lượng RAM. Với VPS Ram 1GB, bạn nên đặt thông số này là 128MB

Screenshot_104 - cài đặt Discourse trên CentOS 7

Bỏ ký tên # tai dong UNICORN_WORKERS. Với thông số RAM 1GB của VPS UNICORN_WORKERS Bạn đặt là 2, với VPS RAM 2GB có thể đặt thông số này là 3 hoặc 4

Screenshot_105 - cài đặt Discourse trên CentOS 7

Nhập tên miền của bạn vào dòng DISCOURSE_HOSTNAME.

Screenshot_84 - cài đặt Discourse trên CentOS 7

Đừng quên trỏ miền của bạn tới VPS

Nhập địa chỉ email của bạn vào dòng DISCOURSE_DEVELOPER_EMAIL.

Screenshot_85 - cài đặt Discourse trên CentOS 7

Cấu hình SMTP là cấu hình quan trọng nhất cho Discourse. Trong bài này HOSTVN sẽ sử dụng SMTP miễn phí của Gmail. Xóa dấu hiệu # từ những dòng DISCOURSE_SMTP_PORTDISCOURSE_SMTP_ENABLE_START_TLS. Cấu hình của bạn sẽ giống như sau

  DISCOURSE_SMTP_ADDRESS: smtp.gmail.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: [email protected]
  DISCOURSE_SMTP_PASSWORD: Mật-Khẩu-Ứng-Dụng
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)

Screenshot_86 - cài đặt Discourse trên CentOS 7

Sau khi cấu hình xong, nhấn Điều khiển + o và hãy nhấn đi vào để lưu tệp, Điều khiển + x để thoát khỏi nano. Tiếp theo, xây dựng cơ sở hình ảnh Discourse Docker mới dựa trên cấu hình mẫu app.yml.

./launcher bootstrap app

Screenshot_87

Sau khi quá trình xây dựng hoàn tất, hãy bắt đầu vùng chứa Discourse mới bằng lệnh sau

./launcher start app

Screenshot_88

Để kiểm tra xem Các vùng chứa Docker của Discourse cho dù nó hoạt động hay không, bạn sử dụng lệnh sau

docker ps -a

Screenshot_89

Kiểm tra các cổng đang được lắng nghe netstat và đảm bảo rằng docker-proxy nghe trên cổng 2045.

netstat -plntu

Screenshot_103

2.4. Bước 4: Cài đặt SSL Let’s Encrypt

Đối với hướng dẫn này, HOSTVN sẽ chạy Discourse với máy chủ web Nginx và chỉ chấp nhận các kết nối HTTPS. Vì mục đích này, một Chứng chỉ SSL mới sẽ cần thiết cho tên miền và do đó, HOSTVN sẽ sử dụng chứng chỉ SSL miễn phí từ Letsencrypt.

yum -y install letsencrypt

Sau khi cài đặt, nếu bạn sử dụng Firewalld Bạn sẽ cần thêm các dịch vụ HTTP và HTTPS vào cấu hình Firewalld của mình.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Screenshot_91

Tiếp theo, tạo chứng chỉ SSL mới cho Discourse bằng lệnh sau.

letsencrypt certonly

Bạn sẽ thấy hai cách xác minh từ Letsencrypt. Vui lòng nhập Đầu tiên và hãy nhấn đi vào

Screenshot_92

Tiếp theo nhập Email của bạn và nhấn đi vào

Screenshot_93

Nhập khẩu Một và hãy nhấn đi vào đồng ý với Let’s Encrypt

Screenshot_94

Bước tiếp theo nhập NHỮNG NGƯỜI PHỤ NỮ và hãy nhấn đi vào

Screenshot_95

Cuối cùng, nhập miền sử dụng Discourse của bạn

Screenshot_96

Screenshot_101

Chứng chỉ SSL mới từ letsencrypt đã được tạo trong thư mục / etc / letsencrypt / live.

  • Định cấu hình SSL tự động gia hạn

Để tự động gia hạn SSL, bạn tạo Cron Job như sau

EDITOR=nano crontab -e

Dán phần sau vào đó

30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
35 2 * * 1 /bin/systemctl reload nginx

Screenshot_118

Sau đó nhấn Điều khiển + o và hãy nhấn đi vào để lưu tệp, nhấn Điều khiển + x để thoát khỏi nano.

2.5. Bước 5: Cài đặt và định cấu hình Nginx làm Reverse Proxy

Đầu tiên bạn cần thiết lập kho lưu trữ nginx để có thể cài đặt Nginx phiên bản mới nhất qua yum.

nano /etc/yum.repos.d/nginx.repo

Dán nội dung bên dưới

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Sau đó nhấn Điều khiển + o và hãy nhấn đi vào để lưu tệp, nhấn Điều khiển + x để thoát khỏi nano. Để cài đặt Nginxchạy lệnh sau:

yum install nginx -y

Khi quá trình cài đặt hoàn tất, hãy bật và bắt đầu dịch vụ Nginx với các lệnh sau:

systemctl enable nginx
systemctl start nginx

Để kiểm tra trạng thái của Nginx vui lòng sử dụng lệnh sau:

systemctl status nginx

Screenshot_97

  • Tạo tệp cấu hình SSL

Đầu tiên chúng ta cần tạo dhparam bằng các lệnh sau

mkdir -p /etc/nginx/ssl
openssl dhparam -out /etc/nginx/ssl/dhp-4096.pem 4096

Tiếp theo, bạn tiến hành tạo tệp cấu hình SSL

nano /etc/nginx/ssl.conf

Dán phần sau vào đó

ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;

ssl_session_cache   shared:SSL:10m;
ssl_session_timeout  5m;
 
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
 
add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

Screenshot_98

Sau đó nhấn Điều khiển + o và hãy nhấn đi vào để lưu tệp, nhấn Điều khiển + x để thoát khỏi nano.

  • Tạo máy chủ ảo (vhost) cho Discourse

Cuối cùng, bạn tạo một vhost cho Discourse

nano /etc/nginx/conf.d/discourse.conf

Dán phần sau vào đó

server {
     listen 80; 
     listen [::]:80;
     server_name discourse.hostvn.com;

     return 301 https://$host$request_uri;
 }
  
 server {
     listen 443 ssl http2;  
     server_name discourse.hostvn.com;
 
     ssl_certificate /etc/letsencrypt/live/discourse.hostvn.com/fullchain.pem;
     ssl_certificate_key /etc/letsencrypt/live/discourse.hostvn.com/privkey.pem;
     include /etc/nginx/ssl.conf;
  
     # Reverse Proxy Configuration
     location / {
         proxy_pass http://discourse.hostvn.com:2045/;
         proxy_set_header Host $http_host;
         proxy_http_version 1.1;
         proxy_set_header X-Forwarded-Proto $scheme;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_redirect http://discourse.hostvn.com:2045/ https://discourse.hostvn.com;
     }
 }

Screenshot_100 - cài đặt Discourse trên CentOS 7

Sau đó nhấn Điều khiển + o và hãy nhấn đi vào để lưu tệp, nhấn Điều khiển + x để thoát khỏi nano. Khởi động lại Nginx để cấu hình có hiệu lực

systemctl restart nginx

2.6. Bước 6: Cài đặt Web Discourse

Mở trình duyệt web của bạn và truy cập diễn ngôn bằng tên miền bạn đã thiết lập. Ấn nút Đăng ký để tạo tài khoản Quản trị viên

Screenshot_106 - cài đặt Discourse trên CentOS 7

Điền thông tin và nhấp vào Đăng ký

Screenshot_107 - cài đặt Discourse trên CentOS 7

Lưu ý: Mật khẩu của bạn phải dài ít nhất 15 ký tự.

Bạn sẽ nhận được một email yêu cầu xác thực. Kiểm tra hộp thư đến của bạn và đảm bảo rằng bạn nhận được email yêu cầu xác thực.

Để nhận được email xác minh, bạn cần đảm bảo rằng bạn đã định cấu hình chính xác Email SMTP ở bước trước.

Screenshot_108 - cài đặt Discourse trên CentOS 7

Nhấp vào liên kết trong email để xác minh email của bạn

Screenshot_109 - cài đặt Discourse trên CentOS 7

Ảnh chụp màn hình_110

Tiếp theo, bạn tiến hành thiết lập theo hướng dẫn ở từng bước

Screenshot_111 - cài đặt Discourse trên CentOS 7

Sau khi hoàn thành các bước cài đặt, bạn sẽ được chuyển đến Trang chủ

Screenshot_113 - cài đặt Discourse trên CentOS 7

Bạn có thể truy cập Trang tổng quan dành cho quản trị viên bằng cách nhấp vào biểu tượng Trình đơn và chọn Quản trị viên

Screenshot_114 - cài đặt Discourse trên CentOS 7

3. Kích hoạt người dùng quản trị khi không nhận được email kích hoạt

Trong trường hợp không nhận được email xác nhận, bạn có thể tiến hành xác thực tài khoản quản trị theo cách thủ công. Đầu tiên hãy chuyển đến thư mục / var / discourse

cd /var/discourse

Sau đó chạy lệnh sau

./launcher enter app

Vui lòng đợi vài giây rồi chạy lệnh sau

rails c

Tiếp theo chạy lệnh

u = User.last

Nhấn đi vào khi có một thông báo Nhấn Enter để tiếp tục

Screenshot_116

Cuối cùng, chạy lần lượt 3 lệnh sau

u.admin = true
u.activate
u.save

Screenshot_115 - cài đặt Discourse trên CentOS 7

Nhấn Ctrl + D 2 lần thoát khỏi nhà tù

4. Tài liệu tham khảo

5. Kết luận

Qua bài đăng này HOSTVN Tôi đã hướng dẫn bạn cài đặt và cấu hình Discourse với Nginx trên CentOS 7 trên Nginx. Nếu có ý kiến ​​đóng góp, bạn có thể để lại bình luận bên dưới. Ngoài ra, bạn có thể xem thêm hướng dẫn cài đặt Nextcloud trên CentOS 7.

Viết một bình luận

bahis10bets.com betvole1.com casinomaxi-giris.com interbahis-giris1.com klasbahis1.com mobilbahisguncelgiris1.com piabetgiris1.com tipobettgiris.com tumbetgiris1.com betboro 1xbet giriş
bahis10bets.com betvole1.com casinomaxi-giris.com interbahis-giris1.com klasbahis1.com mobilbahisguncelgiris1.com piabetgiris1.com tipobettgiris.com tumbetgiris1.com betboro 1xbet giriş
antalya bayan escort
antalya bayan escort
antalya bayan escort