Discourse là một giải pháp diễn đàn nguồn mở mới, đơn giản, gọn gàng và đơn giản. Nó được triển khai với Ruby on Rails, cơ sở dữ liệu Postgres và bộ đệm máy chủ Redis. Hướng dẫn này mô tả cách cài đặt Discference trên VPS Vultr với CentOS 7.
Yêu cầu
- Vultr VPS với RAM tối thiểu 1GB.
- CentOS 7 x64 được cài đặt trên VPS.
Thiết lập tập tin trao đổi
Bạn phải thiết lập trao đổi cho VPS RAM 1GB. Nếu VPS của bạn có nhiều hơn 1GB RAM, bạn có thể bỏ qua bước này. Chúng tôi sẽ tạo một tệp hoán đổi 2 GB cho VPS RAM 1 GB.
-
Tạo tệp hoán đổi.
dd if=/dev/zero of=/swapfile bs=1M count=2048
mkswap /swapfile
chmod 600 /swapfile
-
Chỉnh sửa fstab để thêm tệp hoán đổi vào bảng hệ thống tệp.
Mở fstab bằng vi:
vi /etc/fstab
Thêm dòng sau vào tập tin:
/swapfile swap swap defaults 0 0
-
Đặt chính sách sử dụng trao đổi. Chỉ sử dụng tệp hoán đổi khi bộ nhớ hệ thống thấp.
sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | tee -a /etc/sysctl.conf
sysctl vm.vfs_cache_pressure=60
echo vm.vfs_cache_pressure = 60 | tee -a /etc/sysctl.conf
-
Kích hoạt tính năng hoán đổi.
mount -a
swapon -a
-
Kiểm tra trạng thái hoán đổi.
swapon -s
Nếu hoán đổi đã được kích hoạt, bạn sẽ thấy các thông tin sau.
Filename Type Size Used Priority
/swapfile file 2097148 0 -1
Cài đặt Docker
Chạy lệnh bên dưới để cài đặt Docker trên CentOS 7.
yum install docker
Nếu bạn đã vô hiệu hóa SELinux, tốt hơn hết bạn cũng nên tắt nó trong docker.
vi /etc/sysconfig/docker
Nhận xét dòng 4.
#OPTIONS='--selinux-enabled'
Bắt đầu dịch vụ docker.
systemctl start docker
systemctl enable docker
Xin lưu ý rằng nếu bạn khởi động lại tường lửa, bạn cũng sẽ cần khởi động lại docker. Bởi vì tường lửa sẽ loại bỏ chuỗi docker khỏi iptables khi nó được khởi động lại.
Cài đặt bài giảng
Tạo một thư mục có tên discourse
bên dưới /var
và sao chép kho lưu trữ Nghị luận.
mkdir /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
Chuyển đến discourse
thư mục.
cd /var/discourse
Sao chép tệp mẫu cấu hình Nghị luận vào thư mục container.
cp samples/standalone.yml containers/app.yml
-
Mở app.yml
bằng vi.
vi containers/app.yml
-
Nếu bạn đang sử dụng VPS 1GB, hãy đặt bộ đệm chia sẻ db là 128MB app.yml
.
db_shared_buffers: "128MB"
-
Thay đổi UNICORN_WORKERS
thành 2 cho ví dụ RAM 1GB.
## With 2GB we recommend 3-4 workers, with 1GB only 2
UNICORN_WORKERS: 2
-
Đặt địa chỉ email của bạn cho tài khoản quản trị viên. Bạn sẽ cần email này để đăng ký tài khoản quản trị viên trên diễn đàn Nghị luận của bạn.
DISCOURSE_DEVELOPER_EMAILS: '[email protected]'
-
Đặt tên miền cho Nghị luận. Ví dụ: chúng tôi đặt nó là discourse.example.com
, điều đó có nghĩa là nó có thể truy cập được tại URL http://discourse.example.com/
.
## TODO: The domain name this Discourse instance will respond to
DISCOURSE_HOSTNAME: 'discourse.example.com'
-
Cấu hình máy chủ thư của bạn cho Nghị luận.
Nếu máy chủ thư của bạn ở trên cùng một máy chủ với Nghị luận, hãy định cấu hình như sau.
DISCOURSE_SMTP_ADDRESS: smtp.example.com # (mandatory)
DISCOURSE_SMTP_PORT: 587 # (optional)
DISCOURSE_SMTP_USER_NAME: YOUR_EMAIL_ACCOUNT # (optional)
DISCOURSE_SMTP_PASSWORD: YOURPASSWORD # (optional)
DISCOURSE_SMTP_ENABLE_START_TLS: flase # (optional, default true)
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
Nếu bạn sử dụng máy chủ SMTP từ xa, vui lòng chỉnh sửa app.yml
như sau.
DISCOURSE_SMTP_ADDRESS: smtp.example.com # (mandatory)
DISCOURSE_SMTP_PORT: 587 # (optional)
DISCOURSE_SMTP_USER_NAME: [email protected] # (optional)
DISCOURSE_SMTP_PASSWORD: YOURPASSWORD # (optional)
DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
-
Lưu và thoát app.yml
.
Bootstrap và bắt đầu bài giảng
Chạy lệnh dưới đây để bootstrap Discference.
./launcher bootstrap app
Sau khi quá trình bootstrapping hoàn thành, hãy bắt đầu Bài giảng.
./launcher start app
Mở bài giảng trong trình duyệt của bạn
Trên PC khách của bạn, nhập tên miền mà bạn đã cấu hình cho Nghị luận app.yml
. Bạn sẽ thấy ví dụ của bạn về Nghị luận.
Xử lý sự cố
- Theo mặc định, Docker sẽ lắng nghe trên cổng 80. Nếu cổng 80 đã được Nginx hoặc Apache sử dụng, bạn cần chuyển dịch vụ đó sang cổng khác; hoặc thay đổi Docker sang một cổng khác. Ví dụ: thay đổi "80:80" thành "8080: 80"
app.yml
để làm Docker lắng nghe trên cổng 8080.
- Trên VPS RAM 1GB, có thể không cập nhật Phiên bản lên phiên bản mới và bạn sẽ thấy "Cổng xấu 502" khi truy cập vào Nghị luận. Giải pháp đơn giản cho vấn đề này là chạy
./launcher rebuild app
để xây dựng lại thể hiện Nghị luận của bạn.