Wie man Askbot mit Nginx auf CentOS 7 installiert und konfiguriert

Askbot ist eine Open-Source-Software zur Erstellung von Q&A-Foren auf Basis des Python Django Frameworks. Es ist im Grunde genommen ein Q&A-System wie StackOverflow, Yahoo Answers und andere. Erstellt von Mike Chan und Sailing Cai im Jahr 2009, und es ist einfach zu installieren und zu konfigurieren auf Linux-Systemen wie Ubuntu und CentOS. Viele große Open-Source-Softwareprojekte wie Fedora und LibreOffice nutzen es.

In diesem Tutorial zeigen wir Ihnen, wie Sie die Askbot Python Django-Anwendung mit uWSGI und Nginx Webserver auf dem CentOS 7-System installieren. Was die Datenbank betrifft, so werden wir PostgreSQL für die Askbot-Installation verwenden.

Was wir tun werden

  1. Abhängigkeiten installieren
  2. Installation und Konfiguration von PostgreSQL
  3. Askbot installieren und konfigurieren
  4. uWSGI installieren und konfigurieren
  5. Installation und Konfiguration des Nginx Webservers
  6. Testen Sie das Setup

Voraussetzungen

  • CentOS 7 Server
  • Root-Rechte

Schritt 1 – Abhängigkeiten installieren

In diesem Schritt werden wir einige Pakete installieren, die für eine erfolgreiche Askbot-Installation erforderlich sind. Dazu gehören die Entwicklungswerkzeuge, das Epel-Repository und einige pythonbezogene Werkzeuge (zur Verwaltung von Python-Paketen). Also lasst uns anfangen.

Installieren Sie zunächst CentOS ‚Development Tools‘ mit dem Befehl yum group unten.

yum group install 'Development Tools'

Installieren Sie dann das Epel-Repository.

yum -y install epel-release

Und schließlich installieren Sie die Python-Pakete, einschließlich Python pip, Python-devel und Python six.

yum -y install python-pip python-devel python-six

Python installieren

Schritt 2 – Installation und Konfiguration von PostgreSQL

Jetzt brauchen wir die PostgreSQL-Datenbank, die im CentOS-Repository verfügbar ist. In diesem Abschnitt werden wir besprechen, wie Sie die PostgreSQL-Datenbank installieren, den Postgres-Passwort-Benutzer ändern, einen neuen Benutzer und eine neue Datenbank für die Askbot-Installation erstellen und schließlich die Postgres-Authentifizierungskonfiguration ändern können.

Beginnen wir also mit der Installation von PostgreSQL aus dem Repository mit dem Befehl yum unten.

yum -y install postgresql-server postgresql-devel postgresql-contrib

Sobald die Installation abgeschlossen ist, müssen wir die Datenbank initialisieren, was Sie mit dem folgenden Befehl tun können.

postgresql-setup initdb

Fahren Sie fort, starten Sie Postgres und lassen Sie es beim Booten automatisch starten.

systemctl start postgresql
systemctl enable postgresql

An dieser Stelle sollte die PostgreSQL-Datenbank installiert werden. Als nächstes müssen wir das Postgres-Benutzerpasswort zurücksetzen. Melden Sie sich dazu zunächst als „postgres“-Benutzer an und greifen Sie auf das Befehlszeilentool psql zu.

su - postgres
psql

Und dann gibst du dem postgres-Benutzer ein neues Passwort.

\password postgres

Erstellen Sie nun eine neue Datenbank und einen neuen Benutzer für Askbot. Zum Beispiel wollen wir einen neuen Benutzer‘hakaselabs‚ mit dem Passwort‘hakase123‚ und der Datenbank‘askbotdb‚ anlegen. Die folgenden Postgres-Abfragen werden uns helfen, diese alle zu erstellen.

create database askbotdb;
create user hakaselabs with password 'hakase123';
grant all privileges on database askbotdb to hakaselabs;

Install PostgreSQL

So wurden nun eine Datenbank und ein Benutzer für die Askbot-Installation erstellt. Der nächste Schritt besteht darin, die Postgres-Konfiguration für die Authentifizierungseinrichtung zu bearbeiten, was Sie tun können, indem Sie zum Verzeichnis ‚pgsql/data‘ gehen und die Datei ‚pg_hba.conf‘ mit vim bearbeiten.

cd /var/lib/pgsql/data/
vim pg_hba.conf

Sobald Sie sich in der Datei befinden, ändern Sie die gesamte Authentifizierung auf md5, wie unten gezeigt.

local   all             all                                     md5
 # IPv4 local connections:
 host    all             all             127.0.0.1/32            md5
 # IPv6 local connections:
 host    all             all             ::1/128                 md5

Konfiguriert PostgreSQL

Speichern und beenden Sie nun die Datei und starten Sie den Postgres-Dienst neu.

systemctl restart postgresql

Inzwischen wurde also die PostgreSQL-Datenbank installiert, die Datenbank für die Askbot-Installation erstellt und die Postgres-Benutzerauthentifizierungsmethode auf md5 geändert.

Schritt 3 – Askbot installieren und konfigurieren

In diesem Schritt werden wir die Installation und Konfiguration von Askbot besprechen. Wir werden Askbot unter einem Benutzer namens ‚askbot‘ und unter Verwendung der virtualen Python installieren. Also lasst uns anfangen.

Erstellen Sie zunächst einen neuen Benutzer’askbot‘ und geben Sie dem Benutzer ein neues Passwort.

useradd -m -s /bin/bash askbot
passwd askbot

Fügen Sie dann den Benutzer „askbot“ zur Gruppe „wheel“ für den Zugriff auf sudo-Befehle hinzu (nicht sicher, was sudo ist? Erfahren Sie mehr darüber hier).

usermod -a -G wheel askbot

AskBot installieren

Aktualisieren Sie nun pip auf die neueste Version und installieren Sie das python virtualenv-Paket.

pip install --upgrade pip
pip install virtualenv six

Rohrleitung installieren

Als nächstes. Melden Sie sich als „askbot“-Benutzer an und erstellen Sie eine neue virtuelle Python-Umgebung „hakase-labs“ mit Virtuosität.

su - askbot
virtualenv hakase-labs/

Gehen Sie in das Verzeichnis’hakase-labs‘ und aktivieren Sie die virtuelle Umgebung für die Askbot-Installation.

cd hakase-labs/
source bin/activate

Installieren Sie nun askbot und andere Python-Pakete mit pip-Befehl in der virtuellen Umgebung von ‚hakase-labs‘.

pip install six 
pip install askbot psycopg2

Installation von askbot

Als nächstes erstellen Sie ein neues Verzeichnis für das Projekt’Askbot‘. Achten Sie darauf, dass Sie nicht’askbot‘ als Verzeichnisnamen verwenden. In unserem Fall haben wir beispielsweise ein neues Verzeichnis namens’myapp‘ erstellt.

mkdir myapp/

Gehen Sie in das myapp-Verzeichnis und führen Sie den Befehl’askbot-setup‘ aus.

cd myapp/
askbot-setup

Der Befehl’askbot-setup‘ fragt Sie nach bestimmten Dingen. Sie werden beispielsweise nach dem Verzeichnispfad für die Bereitstellung von Askbot gefragt – Sie können ‚.‘ eingeben und zum Fortfahren auf Enter drücken. Wenn Sie nach der Datenbankmaschine gefragt werden, geben Sie 1 ein, um postgresql zu verwenden, und drücken Sie Enter. Für datenbankbezogene Details geben Sie den Datenbanknamen als’askbotdb‘, den Datenbankbenutzer als’hakaselabs‘ und das Passwort als’hakase123′ ein.

die Anwendung konfigurieren

Askbot ist also nun im Verzeichnis’myapp‘ installiert. Jetzt müssen wir Askbot Django statische Dateien und die Datenbank generieren.

Führen Sie den folgenden Befehl aus, um statische Askbot Django-Dateien zu generieren.

python manage.py collectstatic

Wenn Sie nach einer Bestätigung gefragt werden, geben Sie „ja“ ein und drücken Sie die Eingabetaste.

python manage.py

Um die Datenbank zu generieren, führen Sie nun syncdb wie unten beschrieben aus.

python manage.py syncdb

Sie werden nach der Erstellung des Admin-Benutzers und des Passworts gefragt. Wenn Sie also gefragt werden, geben Sie den Benutzernamen, die E-Mail-Adresse und das Passwort für die Admin-Konfiguration ein.

Admin-Benutzer anlegen

Inzwischen ist Askbot installiert, statische Dateien wurden generiert und die Datenbankkonfiguration ist abgeschlossen.

Sie können die Askbot-Installation mit dem Befehl runserver unten testen.

python manage.py runserver 0.0.0.0:8080

Öffnen Sie Ihren Webbrowser und geben Sie die IP-Adresse des Servers ein, und Sie sollten eine Seite ähnlich der folgenden sehen:

Ergebnis im Webbrowser

Schritt 4 – uWSGI installieren und konfigurieren

Wir werden uWSGI als Dienst für das Askbot Django-Projekt nutzen. Konkret werden wir uWSGI mit Nginx-Webserver für die Askbot-Installation verwenden. Also lasst uns anfangen.

Installieren Sie zunächst uWSGI mit dem Befehl pip, wie unten gezeigt.

sudo pip install uwsgi

Nachdem die Installation abgeschlossen ist, erstellen Sie ein neues Verzeichnis für die virtuellen Hostdateien von uWSGI. In unserem Fall haben wir beispielsweise ‚/etc/uwsgi/sites‘ erstellt.

mkdir -p /etc/uwsgi/sites

Gehen Sie in das neu erstellte Verzeichnis und erstellen Sie eine neue askbot uWSGI-Konfiguration mit vim.

cd /etc/uwsgi/sites
vim askbot.ini

Fügen Sie die folgende Konfiguration in die Datei ein.

[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 = /run/uwsgi/askbot.sock
chmod-socket = 664
uid = askbot
gid = nginx
vacuum = true

# uWSGI Log file
logto = /var/log/uwsgi.log

Das ist es. Das ist es. Speichern Sie die Datei und verlassen Sie den Editor.

Als nächstes fügen Sie eine neue uWSGI-Service-Skriptdatei zum Verzeichnis’/etc/systemd/system‘ hinzu. Gehen Sie in das Verzeichnis und erstellen Sie die Datei’uwsgi.service‘ mit vim.

cd /etc/systemd/system/
vim uwsgi.service

Fügen Sie die folgende uWSGI-Dienstkonfiguration in die Datei ein.

[Unit]
 Description=uWSGI Emperor service

[Service]
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

Speichern und beenden.

Laden Sie nun die Systemdienste neu und aktivieren Sie uWSGI, damit es beim Booten automatisch startet.

systemctl daemon-reload
systemctl enable uwsgi

Reload-Dienste

Damit wurde also uWSGI installiert, und Sie sollten es als Dienst laufen sehen.

Schritt 5 – Installation und Konfiguration des Nginx-Webservers

Askbot ist also jetzt installiert und läuft unter der uWSGI-Sock-Datei’askbot.sock‘. In diesem Schritt werden wir den Nginx-Webserver als Reverse-Proxy für die uWSGI-Anwendung „Askbot“ verwenden.

Zuerst installieren Sie Nginx mit dem Befehl yum.

yum -y install nginx

Gehen Sie nun in das Verzeichnis Nginx ‚conf.d‘ und erstellen Sie mit dem vim-Editor eine neue virtuelle Hostdatei ‚askbot.conf‘.

cd /etc/nginx/conf.d/
vim askbot.conf

nginx installieren

Fügen Sie die folgende Askbot Nginx-Konfiguration in die Datei ein.

server {
         listen 80;
         server_name askbot.me www.askbot.me;
         location / {
         include         uwsgi_params;
         uwsgi_pass      unix:/run/uwsgi/askbot.sock;
    }
 }

Speichern Sie die Datei und verlassen Sie den Editor. Testen Sie nun die Konfiguration, um sicherzustellen, dass kein Fehler vorliegt.

nginx -t

Als nächstes starten Sie die Dienste von Nginx und uWSGI.

systemctl start nginx
systemctl start uwsgi

Und ermöglichen es ihnen, beim Booten automatisch zu starten.

systemctl enable nginx
systemctl enable uwsgi

Testen Sie die nginx-Konfiguration und starten Sie nginx neu.

Damit ist Nginx nun als Reverse-Proxy für die uWSGI-Anwendung’Askbot‘ installiert.

Schritt 6 – Testen Sie das Setup

Öffnen Sie Ihren Webbrowser und besuchen Sie den Askbot-Domainnamen: askbot.me, und Sie werden die Startseite sehen, wie unten gezeigt.

askbot-Domain

Hier ist die Askbot-Benutzer-Login-Seite:

askbot login

Askbot Benutzer-Dashboard:

askbot dashboard

Askbot-Administrationseinstellung:

askbot admin Dashboard

Askbot Django Administrator Login:

Django-Administrator-Login

Askbot Django Admin Dashboard:

Django Admin Dashboard

So wurde die Q&A-Systemanwendung’Askbot‘ erfolgreich mit uWSGI und Nginx Webserver auf CentOS 7 Server installiert.

Referenz

Das könnte Dich auch interessieren …