Askbot je software s otevřeným zdrojovým kódem pro vytváření fóra otázek a odpovědí založených na Python Django Framework. Je to podobné jako u jiných systémů Q&A, jako je StackOverflow a Yahoo Answers. Tento nástroj byl používán velkými open source softwarovými projekty, jako je Fedora a LibreOffice. Askbot byl vytvořen Mike Chanem a Sailing Cai v roce 2009 a jeho instalace a konfigurace na linuxových systémech jako Ubuntu a CentOS je snadná.
V tomto tutoriálu vám ukážeme, jak krok za krokem nainstalovat aplikaci Askbot Django pomocí uWSGI a webového serveru Nginx a jako náš hlavní operační systém budeme používat Ubuntu 16.04 Xenial Xerus.
Co uděláme:
- Instalovat závislosti
- Nainstalujte a nakonfigurujte databázi PostgreSQL
- Nainstalujte a nakonfigurujte Askbot
- Nainstalujte a nakonfigurujte uWSGI
- Nainstalujte a nakonfigurujte Nginx
- Testování
Předpoklady
- Ubuntu 16.04
- Oprávnění uživatele root
Krok 1 – Instalace závislostí
Prvním krokem, který musíme udělat, je nainstalovat balíčky, které jsou potřebné pro instalaci Askbota. Takže začneme. Připojte se k serveru Ubuntu pomocí SSH.
ssh [email protected]
Dále nainstalujte balíčky jako python-dev, pip atd. pomocí následujícího příkazu apt.
apt install -y build-essential python-pip python-dev python-flup libpng12-dev zlib1g-dev libpng-dev libjpeg-dev python-setuptools
Všechny požadované balíčky byly nainstalovány.
Krok 2 – Instalace a konfigurace databáze PostgreSQL
Askbot nabízí podporu pro mnoho databázových systémů, jako je MySQL, SQLite a PostreSQL. V tomto tutoriálu budeme jako náš databázový systém používat PostgreSQL.
Nainstalujeme PostgreSQL, nakonfigurujeme ověřování pro místního uživatele a poté vytvoříme novou databázi a uživatele pro instalaci Askbota.
Nainstalujte databázi PostgreSQL pomocí následujícího příkazu apt.
apt install -y postgresql postgresql-contrib
Nyní upravte pg_hba.conf soubor s vim pro konfiguraci ověřování místního uživatele.
vim /etc/postgresql/9.5/main/pg_hba.conf
Změňte všechna ověřování místních uživatelů pomocí md5, jak je uvedeno níže.
local all all md5
Uložit a odejít. Nyní restartujte služby PostgreSQL a povolte, aby se automaticky spouštěly při startu systému.
systemctl restart postgresql
systemctl enable postgresql
Dále musíme vytvořit novou databázi a uživatele pro instalaci Askbota. Pro náš případ vytvoříme novou databázi 'askbotdb ' s uživatelským jménem 'hakaselabs “ a heslo „hakase123 '.
Přihlaste se jako postgres a přístup k PostgreSQL shellu 'psql'.
su - postgres
psql
Změňte postgres uživatelské heslo s vaším vlastním heslem.
\password postgres
A vytvořte novou databázi 'askbotdb “ a nový uživatel „hakaselabs ' s heslem 'hakase123 pomocí následujících dotazů.
create database askbotdb;
create user hakaselabs with password 'hakase123';
grant all privileges on database askbotdb to hakaselabs;
\q
Byla vytvořena nová databáze PostgreSQL pro instalaci Askbota.
Krok 3 – Instalace a konfigurace aplikace Askbot Django
Všechny balíčky potřebné pro instalaci Askbota byly nainstalovány a databáze PostgreSQL byla vytvořena. Nyní je dalším krokem instalace a konfigurace Askbota.
Potřebujeme vytvořit nového uživatele pro instalaci Askbota, protože pro něj nebudeme používat uživatele root. Vytvořte nového uživatele s názvem 'askbot “ a dejte tomuto uživateli nové heslo.
useradd -m -s /bin/bash askbot
passwd askbot
Dále přidejte askbota uživatele do skupiny sudo pomocí následujícího příkazu usermod.
usermod -a -G sudo askbot
Byl vytvořen nový uživatel. Nyní musíme aktualizovat python-pip a nainstalovat balíček virtualenv. Nainstalujte tyto balíčky pomocí následujících příkazů pip.
pip install --upgrade pip
pip install virtualenv
Nyní se přihlaste jako uživatel 'askbot' pomocí příkazu su a poté nainstalujte Askbot.
su - askbot
A chceme vytvořit nové virtuální prostředí pro naši instalaci askbota. Vytvořte nové virtuální prostředí pomocí příkazu virtualenv.
virtualenv hakase-labs
Přejděte do hakase-labs adresář a aktivujte virtualenv.
cd hakase-labs/
source bin/activate
Nainstalujte si aplikaci Askbot Django s pip, včetně psycopg2 pro připojení k databázi PostgreSQL.
pip install askbot psycopg2
Po dokončení instalace uvidíte výsledek, jak je uvedeno níže.
Dále vytvořte nový adresář pro aplikaci Askbot Django - budeme používat název 'myapp'. Vytvořte adresář a nainstalujte do něj Askbot.
mkdir myapp/
cd myapp
Nainstalujte Askbot pomocí příkazu níže.
askbot-setup
Až budete dotázáni na instalační adresář Askbota, zadejte jediné „. “ a stiskněte „Enter“. Podobně pro konfiguraci databáze zvolte PostgreSQL výběrem čísla '1 '. Zadejte název databáze 'askbotdb ', uživatelské jméno 'hakaselabs ' s heslem 'hakase123 '.
Nyní vygenerujte adresář se statickými soubory pomocí následujícího příkazu.
python manage.py collectstatic
Napište „ano“ a pokračujte stisknutím klávesy Enter.
Vygenerujte databázi PostgreSQL pomocí možnosti syncdb.
python manage.py syncdb
A budete dotázáni na vytvoření administrátorského uživatele – napište „ano“ a poté zadejte svého administrátora, e-mail a heslo.
Askbot je nyní nainstalován v systému pod uživatelským virtuálním prostředím „askbot“. Instalaci Askbota můžete otestovat spuštěním příkazu runserver níže.
python manage.py runserver 0.0.0.0:8080
Otevřete webový prohlížeč a zadejte IP serveru s portem 8080 a zobrazí se stránka 'Askbot', jak je uvedeno níže.
Krok 4 – Instalace a konfigurace uWSGI
uWSGI podporuje aplikace založené na Pythonu, Perlu a Ruby. V tomto tutoriálu budeme používat uWSGI s webovým serverem Nginx pro naši instalaci Askbota. Nainstalujte uWSGI pomocí následujícího příkazu pip.
sudo pip install uwsgi
Nyní vytvořte nový adresář pro konfiguraci webu uWSGI '/etc/uwsgi/sites'.
mkdir -p /etc/uwsgi/sites
/etc/uwsgi/sites
Přidejte nový konfigurační soubor uWSGI 'askbot.ini' do adresáře 'sites' a upravte jej pomocí vim.
vim askbot.ini
Tam vložte následující konfiguraci uWSGI.
[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
A je to. Uložte a ukončete.
Dále musíme vytvořit nový soubor služby pro uWSGI. Přejděte do adresáře '/etc/systemd/system/' a vytvořte nový soubor uwsgi.service pomocí vim.
cd /etc/systemd/system/
vim uwsgi.service
Zde vložte následující konfiguraci služby uWSGI.
[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
Uložit a odejít. Poté znovu načtěte služby systemd.
systemctl daemon-reload
Nyní spusťte službu uWSGI a povolte její automatické spouštění při startu systému.
systemctl start uwsgi
systemctl enable uwsgi
uWSGI bylo nainstalováno a nakonfigurováno pro naši aplikaci Askbot a běží jako systémová služba.
Krok 5 – Instalace a konfigurace Nginx
Askbot je nyní nainstalován a běží pod souborem sock uWSGI 'askbot.sock'. V tomto kroku použijeme webový server Nginx jako reverzní proxy pro aplikaci uWSGI Askbot.
Nainstalujte Nginx z úložiště pomocí následujícího příkazu apt.
apt install nginx
Po dokončení instalace přejděte do konfiguračního adresáře nginx '/etc/nginx/' a přidejte nový soubor virtuálního hostitele nginx 'askbot'.
cd /etc/nginx
vim sites-available/askbot
Vložte následující konfiguraci virtuálního hostitele askbot nginx.
server {
listen 80;
server_name askbot.me www.askbot.me;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/askbot/hakase-labs/myapp/askbot.sock;
}
}
Uložte a ukončete.
Nyní povolte soubor virtuálního hostitele Askbot vytvořením symbolického odkazu pro soubor 'askbot' do adresáře 'sites-enabled' a otestujte konfiguraci nginx.
ln -s /etc/nginx/sites-available/askbot /etc/nginx/sites-enabled/
nginx -t
Virtuální hostitel Askbot je povolen. Nyní restartujte služby nginx a povolte jejich automatické spouštění při spouštění systému.
systemctl restart nginx
systemctl enable nginx
Konfigurace Nginx byla dokončena a běží na portu 80. Zkontrolujte to pomocí příkazu netstat, jak je znázorněno níže.
netstat -plntu
Nyní zkontrolujte askbota kontrolou sock souboru uWSGI pomocí následujícího příkazu netstat.
netstat -pl | grep askbot
Webový server Nginx byl nainstalován a nakonfigurován pro aplikaci Askbot Python Django.
Krok 6 – Testování
Otevřete svůj webový prohlížeč a navštivte název domény Askbot:askbot.me a měli byste získat domovskou stránku, jak je uvedeno níže.
Přihlášení uživatele Askbot.
Panel uživatele Askbot.
Nastavení Askbota.
Přihlášení správce Askbot Django.
Askbot Django admin Dashboard.
Systémová aplikace Q&A „Askbot“ byla nainstalována s webovým serverem uWSGI a Nginx na serveru Ubuntu 16.04.