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:
Tiếp theo, cài đặt các gói như python-dev, pip, v.v. bằng lệnh apt sau.
Tất cả các gói cần thiết đã được cài đặt.
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.
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ộ.
Thay đổi tất cả xác thực người dùng cục bộ bằng md5 như bên dưới.
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.
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'.
Thay đổi mật khẩu người dùng postgres bằng mật khẩu của riêng bạn.
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ột cơ sở dữ liệu PostgreSQL mới để cài đặt Askbot đã được tạo.
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.
Tiếp theo, thêm người dùng askbot vào nhóm sudo bằng lệnh usermod sau.
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.
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.
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.
Truy cập thư mục hakase-labs và kích hoạt virtualenv.
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.
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 đó.
Cài đặt Askbot bằng lệnh bên dưới.
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.
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.
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ở 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ây giờ hãy tạo một thư mục mới cho cấu hình site uWSGI '/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.
Tại đó, dán cấu hình uWSGI sau.
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.
Dán cấu hình dịch vụ uWSGI sau vào đó.
Lưu và thoát. Sau đó, tải lại các dịch vụ systemd.
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.
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.
Cài đặt Nginx từ kho lưu trữ bằng lệnh apt sau.
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'.
Dán cấu hình máy chủ ảo askbot nginx sau.
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á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.
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.
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áy chủ web Nginx đã được cài đặt và cấu hình cho ứng dụng Askbot Python Django.
Đă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.
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:
- Cài đặt các phụ thuộc
- Cài đặt và cấu hình cơ sở dữ liệu PostgreSQL
- Cài đặt và cấu hình Askbot
- Cài đặt và cấu hình uWSGI
- Cài đặt và cấu hình Nginx
- 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
Mã:
apt install -y build-essential python-pip python-dev python-flup libpng12-dev zlib1g-dev libpng-dev libjpeg-dev python-setuptools
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
Mã:
vim /etc/postgresql/9.5/main/pg_hba.conf
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
Đă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
Mã:
\password postgres
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
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
Mã:
virtualenv hakase-labs
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
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
Mã:
askbot-setup
Bây giờ, tạo thư mục tệp tĩnh bằng lệnh sau.
Mã:
python manage.py collectstatic
Tạo cơ sở dữ liệu PostgreSQL bằng tùy chọn syncdb.
Mã:
python manage.py syncdb
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
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
Mã:
mkdir -p /etc/uwsgi/sites
/etc/uwsgi/sites
Mã:
vim askbot.ini
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
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
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
Mã:
systemctl daemon-reload
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
Mã:
cd /etc/nginx
vim sites-available/askbot
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;
}
}
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
Mã:
netstat -plntu
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.