Askbot je software s otevřeným zdrojovým kódem pro vytváření fór Q&A založených na Python Django Framework. Je to v podstatě systém otázek a odpovědí, jako je StackOverflow, Yahoo Answers a další. Vytvořil Mike Chan a Sailing Cai v roce 2009 a je snadné jej nainstalovat a nakonfigurovat na systémech Linux, jako je Ubuntu a CentOS. Používá jej mnoho velkých open source softwarových projektů jako Fedora a LibreOffice.
V tomto tutoriálu vám ukážeme, jak nainstalovat aplikaci Askbot Python Django pomocí uWSGI a webového serveru Nginx na systému CentOS 7. Pokud jde o databázi, pro instalaci Askbota budeme používat PostgreSQL.
Co uděláme
- Instalovat závislosti
- Nainstalujte a nakonfigurujte PostgreSQL
- Nainstalujte a nakonfigurujte Askbot
- Nainstalujte a nakonfigurujte uWSGI
- Nainstalujte a nakonfigurujte webový server Nginx
- Otestujte nastavení
Předpoklady
- Server CentOS 7
- Oprávnění uživatele root
Krok 1 – Instalace závislostí
V tomto kroku nainstalujeme některé balíčky, které jsou potřeba pro úspěšnou instalaci Askbota. Mezi ně patří 'Development Tools', Epel repository a některé nástroje související s pythonem (pro správu balíčků Pythonu). Takže začneme.
Nejprve nainstalujte CentOS 'Development Tools' pomocí příkazu yum group níže.
yum group install 'Development Tools'
Poté nainstalujte úložiště Epel.
yum -y install epel-release
A nakonec nainstalujte balíčky python, včetně python pip, python-devel a python six.
yum -y nainstalovat python-pip python-devel python-six
Krok 2 – Instalace a konfigurace PostgreSQL
Nyní potřebujeme databázi PostgreSQL, která je dostupná v úložišti CentOS. V této části probereme, jak můžete nainstalovat databázi PostgreSQL, změnit heslo uživatele postgres, vytvořit nového uživatele a databázi pro instalaci Askbota a nakonec změnit konfiguraci ověřování postgres.
Začněme tedy instalací PostgreSQL z úložiště pomocí příkazu yum níže.
yum -y install postgresql-server postgresql-devel postgresql-contrib
Jakmile je instalace dokončena, musíme inicializovat databázi, což můžete provést pomocí příkazu níže.
postgresql-setup initdb
Pokračujte, spusťte postgres a povolte jeho automatické spouštění při spouštění.
systemctl spustit postgresql
systemctl povolit postgresql
V tomto okamžiku by měla být nainstalována databáze PostgreSQL. Dále musíme resetovat uživatelské heslo postgres. Nejprve se přihlaste jako uživatel 'postgres' a získejte přístup k nástroji příkazového řádku psql.
su - postgres
psql
A poté dejte uživateli postgres nové heslo.
\password postgres
Nyní vytvořte novou databázi a uživatele pro Askbot. Například chceme vytvořit nového uživatele 'hakaselabs ' s heslem 'hakase123 “ a databázi s názvem „askbotdb '. Následující postgresové dotazy nám pomohou všechny tyto vytvořit.
vytvořit databázi askbotdb;
vytvořit uživatele hakaselabs s heslem 'hakase123';
udělit všechna oprávnění k databázi askbotdb hakaselabs;
Nyní tedy byla vytvořena databáze a uživatel pro instalaci Askbota. Dalším krokem je upravit konfiguraci postgres pro nastavení autentizace, což můžete provést tak, že přejdete do adresáře 'pgsql/data' a upravíte soubor 'pg_hba.conf' pomocí vim.
cd /var/lib/pgsql/data/
vim pg_hba.conf
Jakmile jste uvnitř souboru, změňte veškeré ověřování na md5, jak je uvedeno níže.
# IPv4 Local Connections:
hostitele všech 127.0.0.1/32 MD5
# IPv6 Local Connections:
hostitele vše ::1/128 md5
Nyní uložte a ukončete soubor a poté restartujte službu postgres.
systemctl restart postgresql
Nyní je tedy databáze PostgreSQL nainstalována; databáze pro instalaci Askbota byla vytvořena; a postgresová metoda ověřování uživatele byla změněna na md5.
Krok 3 – Instalace a konfigurace Askbota
V tomto kroku probereme instalaci a konfiguraci Askbota. Askbota nainstalujeme pod uživatelem jménem 'askbot' a pomocí virtualenv pythonu. Takže začneme.
Nejprve vytvořte nového uživatele 'askbot' a dejte uživateli nové heslo.
useradd -m -s /bin/bash askbot
passwd askbot
Poté přidejte uživatele 'askbot' do skupiny 'wheel' pro přístup k příkazu sudo (nejste si jisti, co je to 'sudo'? Více se o něm dozvíte zde).
usermod -a -G wheel askbot
Nyní upgradujte pip na nejnovější verzi a nainstalujte balíček python virtualenv.
pip install --upgrade pip
pip install virtualenv six
Další. přihlaste se jako uživatel 'askbot' a vytvořte nové virtuální prostředí pythonu 'hakase-labs' pomocí virtualenv.
su - askbot
virtualenv hakase-labs/
Přejděte do adresáře 'hakase-labs' a aktivujte virtuální prostředí pro instalaci Askbota.
cd hakase-labs/
source bin/activate
Nyní nainstalujte askbot a další balíčky pythonu pomocí příkazu pip do virtuálního prostředí 'hakase-labs'.
pip install šest
pip install askbot psycopg2
Dále vytvořte nový adresář pro projekt 'Askbot'. Ujistěte se, že jako název adresáře nepoužíváte 'askbot'. V našem případě jsme například vytvořili nový adresář s názvem 'myapp'
mkdir myapp/
Přejděte do adresáře myapp a spusťte příkaz 'askbot-setup'.
cd myapp/
askbot-setup
Příkaz 'askbot-setup' se vás zeptá na určité věci. Například budete dotázáni na cestu k adresáři pro nasazení Askbota - můžete zadat '.' a pokračujte stisknutím klávesy Enter. Podobně při dotazu na databázový stroj zadejte „1“ pro použití postgresql a stiskněte Enter. Pro podrobnosti týkající se databáze zadejte název databáze jako 'askbotdb', uživatele databáze jako 'hakaselabs' a heslo jako 'hakase123'.
Takže Askbot je nyní nainstalován v adresáři 'myapp'. Nyní potřebujeme vygenerovat Askbot Django statické soubory a databázi.
Spusťte níže uvedený příkaz a vygenerujte statické soubory Askbot Django.
python manage.py collectstatic
Až budete požádáni o potvrzení, napište „ano“ a stiskněte Enter.
Nyní pro vygenerování databáze spusťte syncdb, jak je uvedeno níže.
python manage.py syncdb
Budete dotázáni na vytvoření administrátorského uživatele a hesla. Až budete požádáni, zadejte uživatelské jméno, e-mail a heslo pro konfiguraci správce.
Nyní je tedy Askbot nainstalován, statické soubory byly vygenerovány a konfigurace databáze dokončena.
Instalaci Askbota můžete otestovat pomocí příkazu runserver níže.
python manage.py runserver 0.0.0.0:8080
Otevřete webový prohlížeč a zadejte adresu IP serveru a měla by se zobrazit stránka podobná následující:
Krok 4 – Instalace a konfigurace uWSGI
UWSGI budeme používat jako službu pro projekt Askbot Django. Konkrétně budeme používat uWSGI s webovým serverem Nginx pro instalaci Askbota. Takže začneme.
Nejprve nainstalujte uWSGI pomocí příkazu pip, jak je znázorněno níže.
instalace sudo pip uwsgi
Po dokončení instalace vytvořte nový adresář pro soubory virtuálního hostitele uWSGI. Například v našem případě jsme vytvořili '/etc/uwsgi/sites'.
mkdir -p /etc/uwsgi/sites
Přejděte do nově vytvořeného adresáře a vytvořte novou konfiguraci askbot uWSGI pomocí vim.
cd /etc/uwsgi/sites
vim askbot.ini
Do souboru vložte následující konfiguraci.
[uwsgi]
# Adresář projektu, adresář 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
procesy =5
# Askbot poběží pod souborem sock
socket =/run/uwsgi/askbot.sock
chmod- socket =664
uid =askbot
gid =nginx
vakuum =true
# soubor protokolu uWSGI
logto =/var/log/uwsgi.log
A je to. Uložte soubor a ukončete editor.
Dále přidejte nový soubor skriptu služby uWSGI do adresáře '/etc/systemd/system'. Přejděte do adresáře a vytvořte soubor 'uwsgi.service' pomocí vim.
cd /etc/systemd/system/
vim uwsgi.service
Do souboru vložte následující konfiguraci služby uWSGI.
[Jednotka]
Popis=služba uWSGI Emperor
[Služba]
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
[Install]
WantedBy=multi-user.target
Uložte a ukončete.
Nyní znovu načtěte systémové služby a povolte automatické spouštění uWSGI při spouštění.
systemctl daemon-reload
systemctl povolit uwsgi
Takže tímto bylo uWSGI nainstalováno a měli byste jej vidět spuštěné jako služba.
Krok 5 – Instalace a konfigurace webového serveru Nginx
Takže Askbot je nyní nainstalován a běží pod souborem sock uWSGI 'askbot.sock'. V tomto kroku budeme používat webový server Nginx jako reverzní proxy pro aplikaci uWSGI 'Askbot'.
Nejprve nainstalujte Nginx pomocí příkazu yum.
yum -y nainstalujte nginx
Nyní přejděte do adresáře Nginx 'conf.d' a vytvořte nový soubor virtuálního hostitele 'askbot.conf' pomocí editoru vim.
cd /etc/nginx/conf.d/
vim askbot.conf
Do souboru vložte následující konfiguraci Askbot Nginx.
server {
listen 80;
název_serveru askbot.me www.askbot.me;
umístění / {
zahrnout uwsgi / uni x: uwsgi/askbot.sock;
}
}
Uložte soubor a ukončete editor. Nyní otestujte konfiguraci, abyste se ujistili, že nedošlo k chybě.
nginx -t
Dále spusťte služby Nginx a uWSGI.
systemctl start nginx
systemctl start uwsgi
A povolit jejich automatické spouštění při spouštění.
systemctl povolit nginx
systemctl povolit uwsgi
Nginx je tedy nyní nainstalován jako reverzní proxy pro aplikaci uWSGI 'Askbot'.
Krok 6 – Otestujte nastavení
Otevřete svůj webový prohlížeč a navštivte název domény Askbot:askbot.me a zobrazí se vám domovská stránka, jak je uvedeno níže.
Zde je přihlašovací stránka uživatele Askbot:
Uživatelský panel Askbot:
Nastavení správce Askbot:
Přihlášení správce Askbot Django:
Panel správce Askbot Django:
Systémová aplikace Q&A 'Askbot' byla tedy úspěšně nainstalována s webovým serverem uWSGI a Nginx na serveru CentOS 7.