[center][/center]
Cài đặt diễn đàn Discourse và WordPress trên cùng một server giúp bạn tiết kiệm chi phí, tận dụng dược domain và subdomain…
Bài này hướng dẫn trên Server mới, sẽ chạy docker và nginx, không nên thực hiện trên server có web wordpress đang chạy. (Tham khảo từ discourse).
Bắt đầu từng bước một cài Discourse + WordPress
Bước 1: Server mới chạy linux (Ubuntu, CentOS)
Chắc chắn rồi, bạn phải sở hữu một server Ram ít nhất 1G nếu chỉ chạy Discourse, vì bình thường nó cũng ngốn 8-900MB rồi. Sử dụng chung wp nữa thì đề nghị là 4GB ram nhé.
Nếu đã có VPS đang chạy Discourse thì xem Bước 3
Bước 2: Cài Discourse
Đảm bảo Discourse hoạt động bình thường.
Bước 3: Dừng Discourse
Tạm dừng Discourse
cd /var/discourse
./launcher stop app
Sửa file app.yml trong thư mục var/discourse/containers/
Tìm đoạn sau:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Uncomment these two lines if you wish to add Lets Encrypt (https)
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
- "80:80" # http
- "443:443" # https
Và sửa thành:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Uncomment these two lines if you wish to add Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
- "templates/web.socketed.template.yml" # <-- Added
## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
# - "80:80" # http
# - "443:443" # https
Bước 4: Cài Wordops + WordPress
Sau khi hoàn thành bước 3, bắt đầu cài Wordops sau đó tạo một site wordpress. Xem bài viết cài đặt Wordops trên server
Đảm bảo website wordpress hoạt động bình thường sau khi cài.
Cài đặt tương tự đối với script Webinoly, xem hướng dẫn cài webinoly
Đã test thành công Discourse + WordPress – Webinoly trên cùng một vps
Bước 5: Tạo file discourse.conf
Trong thư mục /etc/nginx/sites-enabled/
tạo file discourse.conf với nội dung sau:
server {
listen 80; listen [::]:80;
server_name domain.com; # <-- change this
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2; listen [::]:443 ssl http2;
server_name domain.com; # <-- change this
ssl on;
ssl_certificate /var/discourse/shared/standalone/ssl/domain.com.cer; # <-- change this
ssl_certificate_key /var/discourse/shared/standalone/ssl/domain.com.key; # <-- change this
ssl_dhparam /var/discourse/shared/standalone/ssl/dhparams.pem;
ssl_session_tickets off;
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;
http2_idle_timeout 5m; # up from 3m default
location / {
proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
}
}
Nhớ thay domain.com bằng tên miền discourse của bạn nhé.
Tạo dhparams.pem
openssl dhparam -out /var/discourse/shared/standalone/ssl/dhparams.pem 2048
Và chạy các lệnh cuối cùng:
# Make sure that Discourse isn't running
/var/discourse/launcher stop app || true
# test configuration
sudo nginx -t
# Important: If nginx -t comes back with an error, correct the config before reloading!
sudo service nginx reload
# Rebuild the container to apply changes
/var/discourse/launcher rebuild app
Bây giờ làm mới Discourse và WordPress và xem kết quả.