Cách cài đặt và cấu hình Askbot trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Askbot là phần mềm nguồn mở để tạo diễn đàn Hỏi & Đáp dựa trên Python Django Framework. Nó tương tự như các hệ thống Hỏi & Đáp khác như StackOverflow và Yahoo Answers. Công cụ này đã được các dự án phần mềm nguồn mở lớn như Fedora và LibreOffice sử dụng. Askbot được Mike Chan và Sailing Cai tạo ra vào năm 2009 và dễ dàng cài đặt và cấu hình trên các hệ thống Linux như Ubuntu và CentOS.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt ứng dụng Askbot Django từng bước bằng máy chủ web uWSGI và Nginx và chúng tôi sẽ sử dụng Ubuntu 16.04 Xenial Xerus làm hệ điều hành chính.

Những gì chúng ta sẽ làm:
  1. Cài đặt các phụ thuộc
  2. Cài đặt và cấu hình cơ sở dữ liệu PostgreSQL
  3. Cài đặt và cấu hình Askbot
  4. Cài đặt và cấu hình uWSGI
  5. Cài đặt và cấu hình Nginx
  6. Kiểm tra

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

  • Ubuntu 16.04
  • Quyền root

Bước 1 - Cài đặt các phụ thuộc​

Bước đầu tiên chúng ta phải làm là cài đặt các gói cần thiết để cài đặt Askbot. Vậy chúng ta hãy bắt đầu. Kết nối với máy chủ Ubuntu của bạn bằng SSH.
Mã:
ssh root@AskbotServerIP
Tiếp theo, cài đặt các gói như python-dev, pip, v.v. bằng lệnh apt sau.
Mã:
apt install -y build-essential python-pip python-dev python-flup libpng12-dev zlib1g-dev libpng-dev libjpeg-dev python-setuptools
Tất cả các gói cần thiết đã được cài đặt.

Bước 2 - Cài đặt và cấu hình PostgreSQL database​

Askbot hỗ trợ nhiều hệ thống cơ sở dữ liệu như MySQL, SQLite và PostreSQL. Trong hướng dẫn này, chúng ta sẽ sử dụng PostgreSQL làm hệ thống cơ sở dữ liệu của mình.

Chúng ta sẽ cài đặt PostgreSQL, cấu hình xác thực cho người dùng cục bộ, sau đó tạo cơ sở dữ liệu và người dùng mới để cài đặt Askbot.

Cài đặt cơ sở dữ liệu PostgreSQL bằng lệnh apt sau.
Mã:
apt install -y postgresql postgresql-contrib
Bây giờ hãy chỉnh sửa tệp pg_hba.conf bằng vim để cấu hình xác thực người dùng cục bộ.
Mã:
vim /etc/postgresql/9.5/main/pg_hba.conf
Thay đổi tất cả xác thực người dùng cục bộ bằng md5 như bên dưới.
Mã:
local all all md5


Lưu và thoát. Bây giờ, hãy khởi động lại dịch vụ PostgreSQL và cho phép nó tự động khởi động khi khởi động hệ thống.
Mã:
systemctl restart postgresql
systemctl enable postgresql
Tiếp theo, chúng ta cần tạo cơ sở dữ liệu và người dùng mới để cài đặt Askbot. Trong trường hợp của chúng tôi, chúng tôi sẽ tạo một cơ sở dữ liệu mới 'askbotdb' với tên người dùng 'hakaselabs' và mật khẩu 'hakase123'.

Đăng nhập với tư cách là người dùng postgres và truy cập vào shell PostgreSQL 'psql'.
Mã:
su - postgres
psql
Thay đổi mật khẩu người dùng postgres bằng mật khẩu của riêng bạn.
Mã:
\password postgres
Và tạo một cơ sở dữ liệu mới 'askbotdb' và một người dùng mới 'hakaselabs' với mật khẩu 'hakase123' bằng cách sử dụng các truy vấn sau.
Mã:
create database askbotdb;
create user hakaselabs with password 'hakase123';
cấp tất cả các quyền trên cơ sở dữ liệu askbotdb cho hakaselabs;
\q


Một cơ sở dữ liệu PostgreSQL mới để cài đặt Askbot đã được tạo.

Bước 3 - Cài đặt và cấu hình ứng dụng Askbot Django​

Tất cả các gói cần thiết để cài đặt Askbot đã được cài đặt và cơ sở dữ liệu PostgreSQL đã được tạo. Bây giờ, bước tiếp theo là cài đặt và cấu hình Askbot.

Chúng ta cần tạo một người dùng mới để cài đặt Askbot, vì chúng ta sẽ không sử dụng người dùng root cho việc này. Tạo một người dùng mới có tên là 'askbot' và cấp cho người dùng đó một mật khẩu mới.
Mã:
useradd -m -s /bin/bash askbot
passwd askbot
Tiếp theo, thêm người dùng askbot vào nhóm sudo bằng lệnh usermod sau.
Mã:
usermod -a -G sudo askbot


Một người dùng mới đã được tạo. Bây giờ chúng ta cần cập nhật python-pip và cài đặt gói virtualenv. Cài đặt các gói này bằng các lệnh pip sau.
Mã:
pip install --upgrade pip
pip install virtualenv


Bây giờ, hãy đăng nhập với tư cách là người dùng 'askbot' bằng lệnh su, sau đó cài đặt Askbot.
Mã:
su - askbot
Và chúng ta muốn tạo một môi trường ảo mới cho quá trình cài đặt askbot của mình. Tạo một môi trường ảo mới bằng lệnh virtualenv.
Mã:
virtualenv hakase-labs
Truy cập thư mục hakase-labs và kích hoạt virtualenv.
Mã:
cd hakase-labs/
source bin/activate


Cài đặt ứng dụng Askbot Django bằng pip, bao gồm psycopg2 để kết nối cơ sở dữ liệu PostgreSQL.
Mã:
pip install askbot psycopg2
Sau khi cài đặt hoàn tất, bạn sẽ thấy kết quả như hiển thị bên dưới.



Tiếp theo, tạo một thư mục mới cho ứng dụng Askbot Django - chúng ta sẽ sử dụng tên 'myapp'. Tạo thư mục và cài đặt Askbot trong đó.
Mã:
mkdir myapp/
cd myapp
Cài đặt Askbot bằng lệnh bên dưới.
Mã:
askbot-setup
Khi bạn được hỏi về thư mục cài đặt Askbot, chỉ cần cung cấp một lệnh '.' và nhấn 'Enter'. Tương tự, đối với cấu hình cơ sở dữ liệu, hãy chọn PostgreSQL bằng cách chọn số '1'. Nhập tên cơ sở dữ liệu 'askbotdb', tên người dùng 'hakaselabs' với mật khẩu 'hakase123'.



Bây giờ, tạo thư mục tệp tĩnh bằng lệnh sau.
Mã:
python manage.py collectstatic
Nhập 'yes' và nhấn Enter để tiếp tục.



Tạo cơ sở dữ liệu PostgreSQL bằng tùy chọn syncdb.
Mã:
python manage.py syncdb
Và bạn sẽ được hỏi về việc tạo người dùng quản trị - nhập 'yes' rồi nhập tên người dùng quản trị, email và mật khẩu của bạn.



Askbot hiện đã được cài đặt trên hệ thống trong môi trường ảo của người dùng 'askbot'. Bạn có thể kiểm tra cài đặt Askbot bằng cách chạy lệnh runserver bên dưới.
Mã:
python manage.py runserver 0.0.0.0:8080
Mở trình duyệt web của bạn và nhập IP máy chủ với cổng 8080, và bạn sẽ thấy trang 'Askbot', như hiển thị bên dưới.


Bước 4 - Cài đặt và cấu hình uWSGI​

uWSGI hỗ trợ các ứng dụng dựa trên Python, Perl và Ruby. Trong hướng dẫn này, chúng ta sẽ sử dụng uWSGI với máy chủ web Nginx để cài đặt Askbot. Cài đặt uWSGI bằng lệnh pip sau.
Mã:
sudo pip install uwsgi
Bây giờ hãy tạo một thư mục mới cho cấu hình site uWSGI '/etc/uwsgi/sites'.
Mã:
mkdir -p /etc/uwsgi/sites
/etc/uwsgi/sites
Thêm tệp cấu hình uWSGI mới 'askbot.ini' vào thư mục 'sites' và chỉnh sửa bằng vim.
Mã:
vim askbot.ini
Tại đó, dán cấu hình uWSGI sau.
Mã:
[uwsgi]

# Thư mục dự án, thư mục Python
chdir = /home/askbot/hakase-labs/myapp
home = /home/askbot/hakase-labs/
static-map = /m=/home/askbot/hakase-labs/myapp/static
wsgi-file = /home/askbot/hakase-labs/myapp/django.wsgi

master = true
processes = 5

# Askbot sẽ chạy dưới tệp sock
socket = /home/askbot/hakase-labs/myapp/askbot.sock
chmod-socket = 664
uid = askbot
gid = www-data
vacuum = true

# Tệp nhật ký uWSGI
logto = /var/log/uwsgi.log
Vậy là xong. Lưu và thoát.



Tiếp theo, chúng ta cần tạo một tệp dịch vụ mới cho uWSGI. Đi tới thư mục '/etc/systemd/system/' và tạo tệp uwsgi.service mới bằng vim.
Mã:
cd /etc/systemd/system/
vim uwsgi.service
Dán cấu hình dịch vụ uWSGI sau vào đó.
Mã:
[Unit]
Description=uWSGI Emperor service

[Service]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown askbot:www-data /run/uwsgi'
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all

[Cài đặt]
WantedBy=multi-user.target
Lưu và thoát. Sau đó, tải lại các dịch vụ systemd.
Mã:
systemctl daemon-reload
Bây giờ, hãy khởi động dịch vụ uWSGI và cho phép nó tự động khởi chạy khi khởi động hệ thống.
Mã:
systemctl start uwsgi
systemctl enable uwsgi


uWSGI đã được cài đặt và định cấu hình cho ứng dụng Askbot của chúng tôi và nó đang chạy như một dịch vụ hệ thống.

Bước 5 - Cài đặt và định cấu hình Nginx​

Askbot hiện đã được cài đặt và đang chạy trong tệp sock uWSGI 'askbot.sock'. Ở bước này, chúng ta sẽ sử dụng máy chủ web Nginx làm proxy ngược cho ứng dụng uWSGI Askbot.

Cài đặt Nginx từ kho lưu trữ bằng lệnh apt sau.
Mã:
apt install nginx
Sau khi cài đặt hoàn tất, vui lòng vào thư mục cấu hình nginx '/etc/nginx/' và thêm tệp máy chủ ảo nginx mới 'askbot'.
Mã:
cd /etc/nginx
vim sites-available/askbot
Dán cấu hình máy chủ ảo askbot nginx sau.
Mã:
server {
 listen 80;
 server_name askbot.me www.askbot.me;
 location / {
 include uwsgi_params;
 uwsgi_pass unix:/home/askbot/hakase-labs/myapp/askbot.sock;
 }
}
Lưu và thoát.

Bây giờ hãy bật tệp máy chủ ảo Askbot bằng cách tạo liên kết tượng trưng cho tệp 'askbot' tới thư mục 'sites-enabled' và kiểm tra cấu hình nginx.
Mã:
ln -s /etc/nginx/sites-available/askbot /etc/nginx/sites-enabled/
nginx -t


Máy chủ ảo Askbot đã được bật. Bây giờ hãy khởi động lại các dịch vụ nginx và cho phép nó tự động khởi động khi hệ thống khởi động.
Mã:
systemctl restart nginx
systemctl enable nginx
Cấu hình Nginx đã hoàn tất và đang chạy trên cổng 80. Kiểm tra bằng lệnh netstat như hiển thị bên dưới.
Mã:
netstat -plntu
Bây giờ hãy kiểm tra askbot bằng cách kiểm tra tệp sock uWSGI bằng lệnh netstat sau.
Mã:
netstat -pl | grep askbot


Máy chủ web Nginx đã được cài đặt và cấu hình cho ứng dụng Askbot Python Django.

Bước 6 - Kiểm tra​

Mở trình duyệt web của bạn và truy cập tên miền Askbot: askbot.me, và bạn sẽ thấy trang chủ như hiển thị bên dưới.



Đăng nhập người dùng Askbot.



Bảng điều khiển người dùng Askbot.



Cài đặt Askbot.



Đăng nhập quản trị viên Askbot Django.



Bảng điều khiển quản trị viên Askbot Django.



Ứng dụng hệ thống Hỏi & Đáp 'Askbot' đã được cài đặt với uWSGI và máy chủ web Nginx trên máy chủ Ubuntu 16.04.

Tham khảo​

https://askbot.org/vi/câu hỏi/
 
Back
Bên trên