Askbot adalah perangkat lunak sumber terbuka untuk membuat forum Tanya Jawab berdasarkan Python Django Framework. Ini mirip dengan sistem Tanya Jawab lainnya seperti StackOverflow dan Yahoo Answers. Alat ini telah digunakan oleh proyek perangkat lunak sumber terbuka besar seperti Fedora dan LibreOffice. Askbot dibuat oleh Mike Chan dan Sailing Cai pada tahun 2009, dan mudah untuk diinstal dan dikonfigurasi pada sistem Linux seperti Ubuntu dan CentOS.
Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana langkah demi langkah menginstal Aplikasi Askbot Django menggunakan server Web uWSGI dan Nginx, dan kami akan menggunakan Ubuntu 16.04 Xenial Xerus sebagai sistem operasi utama kami.
Apa yang akan kami lakukan:
- Instal dependensi
- Instal dan konfigurasikan database PostgreSQL
- Instal dan konfigurasi Askbot
- Instal dan konfigurasikan uWSGI
- Instal dan konfigurasikan Nginx
- Pengujian
Prasyarat
- Ubuntu 16.04
- Hak istimewa root
Langkah 1 - Instal dependensi
Langkah pertama yang harus kita lakukan adalah menginstall paket-paket yang dibutuhkan untuk instalasi Askbot. Jadi ayo mulai. Hubungkan ke server Ubuntu Anda menggunakan SSH.
ssh [email protected]
Selanjutnya, instal paket seperti python-dev, pip dll dengan perintah apt berikut.
apt install -y build-essential python-pip python-dev python-flup libpng12-dev zlib1g-dev libpng-dev libjpeg-dev python-setuptools
Semua paket yang diperlukan telah diinstal.
Langkah 2 - Instal dan konfigurasikan database PostgreSQL
Askbot menawarkan dukungan untuk banyak sistem database seperti MySQL, SQLite, dan PostreSQL. Dalam tutorial ini, kita akan menggunakan PostgreSQL sebagai sistem database kita.
Kami akan menginstal PostgreSQL, mengkonfigurasi otentikasi untuk pengguna lokal, dan kemudian membuat database dan pengguna baru untuk instalasi Askbot.
Instal database PostgreSQL menggunakan perintah apt berikut.
apt install -y postgresql postgresql-contrib
Sekarang edit pg_hba.conf file dengan vim untuk mengonfigurasi autentikasi pengguna lokal.
vim /etc/postgresql/9.5/main/pg_hba.conf
Ubah semua otentikasi pengguna lokal menggunakan md5 seperti di bawah ini.
local all all md5
Simpan dan keluar. Sekarang, mulai ulang layanan PostgreSQL dan aktifkan untuk memulai secara otomatis saat boot sistem.
systemctl restart postgresql
systemctl enable postgresql
Selanjutnya, kita perlu membuat database dan pengguna baru untuk instalasi Askbot. Untuk kasus kami, kami akan membuat database baru 'askbotdb ' dengan nama pengguna 'hakaselabs ' dan sandi 'hakase123 '.
Masuk sebagai postgres pengguna dan akses shell PostgreSQL 'psql'.
su - postgres
psql
Ubah postgres kata sandi pengguna dengan kata sandi Anda sendiri.
\password postgres
Dan buat database baru 'askbotdb ' dan pengguna baru 'hakaselabs ' dengan sandi 'hakase123 ' menggunakan kueri berikut.
create database askbotdb;
create user hakaselabs with password 'hakase123';
grant all privileges on database askbotdb to hakaselabs;
\q
Database PostgreSQL baru untuk instalasi Askbot telah dibuat.
Langkah 3 - Instal dan Konfigurasi Aplikasi Askbot Django
Semua paket yang diperlukan untuk instalasi Askbot telah diinstal dan database PostgreSQL telah dibuat. Sekarang, langkah selanjutnya adalah menginstal dan mengkonfigurasi Askbot.
Kita perlu membuat user baru untuk instalasi Askbot, karena kita tidak akan menggunakan user root untuk itu. Buat pengguna baru bernama 'askbot ' dan berikan kata sandi baru kepada pengguna itu.
useradd -m -s /bin/bash askbot
passwd askbot
Selanjutnya, tambahkan askbot pengguna ke grup sudo menggunakan perintah usermod berikut.
usermod -a -G sudo askbot
Pengguna baru telah dibuat. Sekarang kita perlu memperbarui python-pip dan menginstal paket virtualenv. Instal paket-paket ini menggunakan perintah pip berikut.
pip install --upgrade pip
pip install virtualenv
Sekarang, login sebagai pengguna 'askbot' dengan perintah su, lalu instal Askbot.
su - askbot
Dan kami ingin membuat lingkungan virtual baru untuk instalasi askbot kami. Buat lingkungan virtual baru dengan perintah virtualenv.
virtualenv hakase-labs
Pergi ke hakase-lab direktori dan aktifkan virtualenv.
cd hakase-labs/
source bin/activate
Instal aplikasi Askbot Django dengan pip, termasuk psycopg2 untuk koneksi database PostgreSQL.
pip install askbot psycopg2
Setelah instalasi selesai, Anda akan melihat hasil seperti gambar di bawah ini.
Selanjutnya, buat direktori baru untuk aplikasi Askbot Django - kita akan menggunakan nama 'myapp'. Buat direktori dan instal Askbot di dalamnya.
mkdir myapp/
cd myapp
Instal Askbot dengan perintah di bawah ini.
askbot-setup
Ketika Anda ditanya tentang direktori instalasi Askbot, berikan saja '. ' dan tekan 'Enter'. Demikian pula untuk konfigurasi database, pilih PostgreSQL dengan memilih angka '1 '. Masukkan nama database 'askbotdb ', nama pengguna 'hakaselabs ' dengan sandi 'hakase123 '.
Sekarang, buat direktori file statis dengan perintah berikut.
python manage.py collectstatic
Ketik 'yes' dan tekan Enter untuk melanjutkan.
Buat database PostgreSQL dengan opsi syncdb.
python manage.py syncdb
Dan Anda akan ditanya tentang cara membuat pengguna admin - ketik 'ya' lalu ketik pengguna admin, email, dan kata sandi Anda.
Askbot sekarang diinstal pada sistem di bawah lingkungan virtual pengguna 'askbot'. Anda dapat menguji instalasi Askbot dengan menjalankan perintah runserver di bawah ini.
python manage.py runserver 0.0.0.0:8080
Buka browser web Anda dan ketik IP server dengan port 8080, dan Anda akan melihat halaman 'Askbot', seperti gambar di bawah ini.
Langkah 4 - Instal dan Konfigurasi uWSGI
uWSGI mendukung aplikasi berbasis Python, Perl, dan Ruby. Dalam tutorial ini, kita akan menggunakan uWSGI dengan server web Nginx untuk instalasi Askbot kita. Instal uWSGI dengan perintah pip berikut.
sudo pip install uwsgi
Sekarang buat direktori baru untuk konfigurasi situs uWSGI '/etc/uwsgi/sites'.
mkdir -p /etc/uwsgi/sites
/etc/uwsgi/sites
Tambahkan file konfigurasi uWSGI baru 'askbot.ini' ke direktori 'sites' dan edit dengan vim.
vim askbot.ini
Di sana, rekatkan konfigurasi uWSGI berikut.
[uwsgi]
# Project directory, Python directory
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 will running under the sock file
socket = /home/askbot/hakase-labs/myapp/askbot.sock
chmod-socket = 664
uid = askbot
gid = www-data
vacuum = true
# uWSGI Log file
logto = /var/log/uwsgi.log
Itu dia. Simpan dan keluar.
Selanjutnya, kita perlu membuat file layanan baru untuk uWSGI. Buka direktori '/etc/systemd/system/' dan buat file uwsgi.service baru menggunakan vim.
cd /etc/systemd/system/
vim uwsgi.service
Tempelkan konfigurasi layanan uWSGI berikut di sana.
[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
[Install]
WantedBy=multi-user.target
Simpan dan keluar. Kemudian, muat ulang layanan systemd.
systemctl daemon-reload
Sekarang, mulai layanan uWSGI dan aktifkan untuk diluncurkan secara otomatis saat boot sistem.
systemctl start uwsgi
systemctl enable uwsgi
uWSGI telah diinstal dan dikonfigurasi untuk aplikasi Askbot kami, dan itu berjalan sebagai layanan sistem.
Langkah 5 - Instal dan konfigurasikan Nginx
Askbot sekarang terinstal, dan berjalan di bawah file kaus kaki uWSGI 'askbot.sock'. Pada langkah ini, kita akan menggunakan server web Nginx sebagai proxy terbalik untuk aplikasi uWSGI Askbot.
Instal Nginx dari repositori menggunakan perintah apt berikut.
apt install nginx
Setelah instalasi selesai, silakan masuk ke direktori konfigurasi nginx '/etc/nginx/' dan tambahkan file host virtual nginx baru 'askbot'.
cd /etc/nginx
vim sites-available/askbot
Rekatkan konfigurasi host virtual askbot nginx berikut.
server {
listen 80;
server_name askbot.me www.askbot.me;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/askbot/hakase-labs/myapp/askbot.sock;
}
}
Simpan dan keluar.
Sekarang aktifkan file host virtual Askbot dengan membuat symlink untuk file 'askbot' ke direktori 'sites-enabled' dan uji konfigurasi nginx.
ln -s /etc/nginx/sites-available/askbot /etc/nginx/sites-enabled/
nginx -t
Host virtual Askbot diaktifkan. Sekarang restart layanan nginx dan aktifkan untuk memulai secara otomatis saat boot sistem.
systemctl restart nginx
systemctl enable nginx
Konfigurasi Nginx telah selesai, dan dijalankan pada port 80. Periksa dengan perintah netstat, seperti gambar di bawah ini.
netstat -plntu
Sekarang periksa askbot dengan memeriksa file sock uWSGI menggunakan perintah netstat berikut.
netstat -pl | grep askbot
Server web Nginx telah diinstal dan dikonfigurasi untuk aplikasi Askbot Python Django.
Langkah 6 - Pengujian
Buka browser web Anda dan kunjungi nama domain Askbot:askbot.me, dan Anda akan mendapatkan halaman beranda seperti yang ditunjukkan di bawah ini.
Login pengguna Askbot.
Dasbor pengguna Askbot.
Pengaturan Askbot.
Login admin Askbot Django.
Dasbor admin Askbot Django.
Aplikasi sistem Tanya Jawab 'Askbot' telah diinstal dengan server web uWSGI dan Nginx di server Ubuntu 16.04.