GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat a nakonfigurovat Askbot s Nginx na CentOS 7

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

  1. Instalovat závislosti
  2. Nainstalujte a nakonfigurujte PostgreSQL
  3. Nainstalujte a nakonfigurujte Askbot
  4. Nainstalujte a nakonfigurujte uWSGI
  5. Nainstalujte a nakonfigurujte webový server Nginx
  6. 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.

Místní všechny všechny MD5
# 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.


Cent OS
  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 8

  2. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  3. Jak nainstalovat a nakonfigurovat Redis na CentOS 7

  1. Jak nainstalovat a nakonfigurovat GitLab na CentOS 7

  2. Jak nainstalovat a nakonfigurovat Nextcloud s Apache na CentOS 7

  3. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7

  1. Jak nainstalovat a nakonfigurovat Redmine na CentOS 7

  2. Jak nainstalovat a nakonfigurovat Redis na CentOS 8

  3. Jak nainstalovat Nextcloud s Nginx a PHP 7.3 na CentOS 8