Askbot adalah perangkat lunak sumber terbuka untuk membuat forum Tanya Jawab berdasarkan Python Django Framework. Ini pada dasarnya adalah sistem Tanya Jawab seperti StackOverflow, Yahoo Answers, dan lainnya. Dibuat oleh Mike Chan dan Sailing Cai pada tahun 2009, dan mudah untuk menginstal dan mengkonfigurasi pada sistem Linux seperti Ubuntu dan CentOS. Banyak proyek perangkat lunak sumber terbuka besar seperti Fedora dan LibreOffice yang menggunakannya.
Dalam tutorial ini, kami akan menunjukkan cara menginstal aplikasi Askbot Python Django menggunakan server web uWSGI dan Nginx pada sistem CentOS 7. Untuk database, kita akan menggunakan PostgreSQL untuk instalasi Askbot.
Apa yang akan kami lakukan
- Instal dependensi
- Instal dan konfigurasikan PostgreSQL
- Instal dan konfigurasi Askbot
- Instal dan konfigurasikan uWSGI
- Instal dan konfigurasikan server Web Nginx
- Uji penyiapan
Prasyarat
- Server CentOS 7
- Hak istimewa root
Langkah 1 - Instal dependensi
Pada langkah ini, kita akan menginstal beberapa paket yang diperlukan agar instalasi Askbot berhasil. Ini termasuk 'Alat Pengembangan', repositori Epel, dan beberapa alat terkait python (untuk mengelola paket Python). Jadi mari kita mulai.
Pertama, instal CentOS 'Development Tools' dengan perintah yum group di bawah ini.
yum group install 'Development Tools'
Kemudian instal repositori Epel.
yum -y install epel-release
Dan terakhir instal paket python, termasuk python pip, python-devel dan python six.
yum -y install python-pip python-devel python-six
Langkah 2 - Instal dan konfigurasikan PostgreSQL
Sekarang kita membutuhkan database PostgreSQL, yang tersedia di repositori CentOS. Di bagian ini, kita akan membahas bagaimana Anda dapat menginstal database PostgreSQL, mengubah pengguna kata sandi postgres, membuat pengguna dan database baru untuk instalasi Askbot, dan terakhir, mengubah konfigurasi otentikasi postgres.
Jadi mari kita mulai dengan menginstal PostgreSQL dari repositori menggunakan perintah yum di bawah ini.
yum -y instal postgresql-server postgresql-devel postgresql-contrib
Setelah instalasi selesai, kita perlu menginisialisasi database, yang dapat Anda lakukan dengan menggunakan perintah di bawah ini.
postgresql-setup initdb
Selanjutnya, mulai postgres dan aktifkan untuk diluncurkan secara otomatis pada saat boot.
systemctl start postgresql
systemctl aktifkan postgresql
Pada titik ini, database PostgreSQL harus diinstal. Selanjutnya, kita perlu mengatur ulang kata sandi pengguna postgres. Untuk ini, pertama login sebagai pengguna 'postgres' dan akses alat baris perintah psql.
su - postgres
psql
Dan kemudian berikan kata sandi baru kepada pengguna postgres.
\password postgres
Sekarang, buat database dan pengguna baru untuk Askbot. Misalnya, kami ingin membuat pengguna baru 'hakaselabs ' dengan sandi 'hakase123 ', dan database bernama 'askbotdb '. Kueri postgres berikut akan membantu kami membuat semua ini.
buat database askbotdb;
buat hakaselabs pengguna dengan kata sandi 'hakase123';
berikan semua hak istimewa pada database askbotdb kepada hakaselabs;
Jadi sekarang, database dan pengguna untuk instalasi Askbot telah dibuat. Langkah selanjutnya adalah mengedit konfigurasi postgres untuk pengaturan otentikasi, yang dapat Anda lakukan dengan menuju ke direktori 'pgsql/data' dan mengedit file 'pg_hba.conf' dengan vim.
cd /var/lib/pgsql/data/
vim pg_hba.conf
Setelah berada di dalam file, ubah semua otentikasi menjadi md5, seperti yang ditunjukkan di bawah ini.
# IPv4 Koneksi Lokal:
Host semua semua 127.0.0.1/32 Md5
# IPv6 Koneksi Lokal:
Host semua ::1/128 md5
Sekarang, simpan dan keluar dari file, lalu restart layanan postgres.
systemctl restart postgresql
Jadi sekarang, database PostgreSQL telah diinstal; database untuk instalasi Askbot telah dibuat; dan metode otentikasi pengguna postgres telah diubah menjadi md5.
Langkah 3 - Instal dan konfigurasi Askbot
Pada langkah ini, kita akan membahas instalasi dan konfigurasi Askbot. Kami akan menginstal Askbot di bawah pengguna bernama 'askbot', dan menggunakan virtualenv python. Jadi mari kita mulai.
Pertama, buat pengguna baru 'askbot' dan berikan kata sandi baru kepada pengguna.
useradd -m -s /bin/bash askbot
passwd askbot
Kemudian tambahkan pengguna 'askbot' ke grup 'roda' untuk akses perintah sudo (tidak yakin apa itu 'sudo'? Pelajari lebih lanjut di sini).
usermod -a -G wheel askbot
Sekarang tingkatkan pip ke versi terbaru dan instal paket python virtualenv.
pip install --upgrade pip
pip install virtualenv six
Berikutnya. masuk sebagai pengguna 'askbot' dan buat lingkungan virtual python baru 'hakase-labs' dengan virtualenv.
su - askbot
virtualenv hakase-labs/
Buka direktori 'hakase-labs' dan aktifkan lingkungan virtual untuk instalasi Askbot.
cd hakase-labs/
source bin/activate
Sekarang instal askbot dan paket python lainnya dengan perintah pip di lingkungan virtual 'hakase-labs'.
pip install enam
pip install askbot psycopg2
Selanjutnya, buat direktori baru untuk proyek 'Askbot'. Harap pastikan Anda tidak menggunakan 'askbot' sebagai nama direktori. Dalam kasus kami, misalnya, kami membuat direktori baru bernama 'myapp'
mkdir myapp/
Buka direktori myapp dan jalankan perintah 'askbot-setup'.
cd myapp/
askbot-setup
Perintah 'askbot-setup' akan menanyakan hal-hal tertentu. Misalnya, Anda akan ditanya tentang jalur direktori untuk menyebarkan Askbot - Anda dapat mengetik '.' dan tekan Enter untuk melanjutkan. Demikian pula, ketika ditanya tentang mesin database, ketik '1' untuk menggunakan postgresql dan tekan Enter. Untuk detail terkait database, masukkan nama database sebagai 'askbotdb', pengguna database sebagai 'hakaselabs', dan sandi sebagai 'hakase123'.
Jadi Askbot sekarang diinstal pada direktori 'myapp'. Sekarang kita perlu membuat file statis Askbot Django dan databasenya.
Jalankan perintah di bawah ini untuk menghasilkan file statis Askbot Django.
python manage.py collectstatic
Saat dimintai konfirmasi, ketik 'yes' dan tekan Enter.
Sekarang, untuk menghasilkan database, jalankan syncdb seperti di bawah ini.
python manage.py syncdb
Anda akan ditanya tentang cara membuat pengguna dan kata sandi admin. Jadi ketika ditanya, ketik nama pengguna, email, dan kata sandi untuk konfigurasi admin.
Jadi sekarang, Askbot telah diinstal, file statis telah dibuat, dan konfigurasi database telah selesai.
Anda dapat menguji instalasi Askbot dengan perintah runserver di bawah ini.
python manage.py runserver 0.0.0.0:8080
Buka browser Web Anda dan ketik alamat IP server, dan Anda akan melihat halaman yang mirip dengan berikut:
Langkah 4 - Instal dan konfigurasi uWSGI
Kami akan menggunakan uWSGI sebagai layanan untuk proyek Askbot Django. Secara khusus, kami akan menggunakan uWSGI dengan server web Nginx untuk instalasi Askbot. Jadi mari kita mulai.
Pertama, instal uWSGI menggunakan perintah pip, seperti yang ditunjukkan di bawah ini.
sudo pip install uwsgi
Setelah instalasi selesai, buat direktori baru untuk file host virtual uWSGI. Misalnya, dalam kasus kami, kami membuat '/etc/uwsgi/sites'.
mkdir -p /etc/uwsgi/sites
Buka direktori yang baru dibuat dan buat konfigurasi askbot uWSGI baru dengan vim.
cd /etc/uwsgi/sites
vim askbot.ini
Tempelkan konfigurasi berikut ke dalam file.
[uwsgi]
# Direktori proyek, direktori 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
proses =5
# Askbot akan berjalan di bawah file sock
socket =/run/uwsgi/askbot.sock
chmod- socket =664
uid =askbot
gid =nginx
vacuum =true
# uWSGI File log
logto =/var/log/uwsgi.log
Itu dia. Simpan file dan keluar dari editor.
Selanjutnya, tambahkan file skrip layanan uWSGI baru ke direktori '/etc/systemd/system'. Buka direktori dan buat file 'uwsgi.service' dengan vim.
cd /etc/systemd/system/
vim uwsgi.service
Rekatkan konfigurasi layanan uWSGI berikut ke dalam file.
[Unit]
Deskripsi=Layanan Kaisar uWSGI
[Layanan]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown askbot:nginx /run/uwsgi'
ExecStart=/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all
[Instal]
WantedBy=multi-user.target
Simpan dan keluar.
Sekarang, muat ulang layanan systemd dan aktifkan uWSGI untuk memulai secara otomatis saat boot.
systemctl daemon-reload
systemctl aktifkan uwsgi
Jadi dengan ini, uWSGI telah diinstal, dan Anda akan melihatnya berjalan sebagai layanan.
Langkah 5 - Instal dan konfigurasikan server web Nginx
Jadi, 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'.
Untuk memulainya, instal Nginx dengan perintah yum.
yum -y install nginx
Sekarang buka direktori 'conf.d' Nginx dan buat file host virtual baru 'askbot.conf' dengan editor vim.
cd /etc/nginx/conf.d/
vim askbot.conf
Rekatkan konfigurasi Askbot Nginx berikut ke dalam file.
server {
listen 80;
server_name askbot.me www.askbot.me;
location / {
include uwsgi_params; run /> uwsgi/askbot.sock;
}
}
Simpan file dan keluar dari editor. Sekarang, uji konfigurasi untuk memastikan tidak ada kesalahan.
nginx -t
Selanjutnya, mulai layanan Nginx dan uWSGI.
systemctl start nginx
systemctl start uwsgi
Dan aktifkan mereka untuk memulai secara otomatis pada saat boot.
systemctl aktifkan nginx
systemctl aktifkan uwsgi
Jadi Nginx sekarang diinstal sebagai proxy terbalik untuk aplikasi uWSGI 'Askbot'.
Langkah 6 - Uji penyiapan
Buka browser web Anda dan kunjungi nama domain Askbot:askbot.me, dan Anda akan melihat halaman beranda, seperti yang ditunjukkan di bawah ini.
Berikut halaman login pengguna Askbot:
Dasbor pengguna Askbot:
Pengaturan admin Askbot:
Login admin Askbot Django:
Dasbor admin Askbot Django:
Jadi aplikasi sistem Q&A 'Askbot' telah berhasil diinstal dengan web server uWSGI dan Nginx di server CentOS 7.