Askbot ist eine kostenlose, quelloffene und hochgradig anpassbare Frage-Antwort-Forensoftware, die in Python und Django geschrieben ist. Es ist einfach, leichtgewichtig und der anderen Forensoftware StackOverflow und YahooAnswers sehr ähnlich. Askbot bietet eine Menge Funktionen, darunter Tags und Kategorien, E-Mail-Benachrichtigungen, ein karmabasiertes System, Abstimmungen, Inhaltsmoderation und vieles mehr.
In diesem Tutorial zeigen wir Ihnen, wie Sie die Askbot-Forum-Software auf CentOS 8 mit Let's Encrypt SSL installieren.
Voraussetzungen
- Ein Server mit CentOS 8.
- Ein Root-Passwort wird auf Ihrem Server eingerichtet.
Erforderliche Abhängigkeiten installieren
Bevor Sie beginnen, müssen Sie einige erforderliche Abhängigkeiten in Ihrem System installieren.
Installieren Sie zunächst die „Development Tools“ mit folgendem Befehl:
dnf group install 'Development Tools'
Installieren Sie als Nächstes das EPEL-Repository und andere Python-Abhängigkeiten mit dem folgenden Befehl:
dnf install epel-release -y
dnf install python2-pip python2-devel python2-six -y
Sobald alle erforderlichen Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.
PostgreSQL installieren und konfigurieren
Askbot verwendet PostgreSQL, um seine Daten zu speichern. Sie müssen es also in Ihrem System installieren. Sie können es mit dem folgenden Befehl installieren:
dnf install postgresql-server postgresql-devel postgresql-contrib -y
Initialisieren Sie die Datenbank nach der Installation mit dem folgenden Befehl:
postgresql-setup initdb
Sie sollten die folgende Ausgabe erhalten:
WARNUNG:Verwenden Sie veraltete Argumentsyntax, versuchen Sie es mit --helpWARNING:Arguments Transformed to:postgresql-setup --initdb --unit postgresql * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in / var/lib/pgsql/initdb_postgresql.log
Starten Sie als Nächstes den PostgreSQL-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:
systemctl postgresql starten
systemctl postgresql aktivieren
Melden Sie sich als Nächstes mit dem folgenden Befehl bei der PostgreSQL-Shell an:
su - postgres
[[email protected] ~]$ psql
Ausgabe:
psql (10.6) Geben Sie „help“ für help.postgres=#ein
Erstellen Sie als Nächstes eine Datenbank und einen Benutzer für Askbot mit dem folgenden Befehl:
postgres=# Datenbank askbot erstellen;
postgres=# Benutzer askbot mit Passwort 'password' erstellen;
Als nächstes erteilen Sie dem Askbot alle Privilegien mit dem folgenden Befehl:
postgres=# askbot alle Privilegien für die Datenbank askbot gewähren;
Verlassen Sie schließlich die PostgreSQL-Shell mit dem folgenden Befehl:
postgres=# \q
Als Nächstes müssen Sie die lokale Benutzerauthentifizierung für PostgreSQL konfigurieren. Sie können dies tun, indem Sie die Datei pg_hba.conf bearbeiten:
nano /var/lib/pgsql/data/pg_hba.conf
Ersetzen Sie in den folgenden Zeilen peer durch md5:
lokal alle alle md5 hosten alle alle 127.0.0.1/32 md5 hosten alle alle ::1/128 md5
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den PostgreSQL-Dienst neu, um die Änderungen zu übernehmen:
systemctl postgresql neu starten
Installieren und konfigurieren Sie Askbot
Vor der Installation von Askbot müssen Sie einen Benutzer für Askbot erstellen. Mit dem folgenden Befehl können Sie einen neuen Askbot-Benutzer erstellen und ein Passwort festlegen:
useradd -m -s /bin/bash askbot
passwd askbot
Fügen Sie als Nächstes den Askbot-Benutzer der Wheel-Gruppe für den Zugriff auf den Sudo-Befehl hinzu:
usermod -a -G wheel askbot
Installieren Sie als Nächstes das Python-virtualenv-Paket mit dem folgenden Befehl:
pip2 install virtualenv six
Ändern Sie nach der Installation den Benutzer auf askbot und erstellen Sie mit dem folgenden Befehl eine neue virtuelle Umgebung für Askbot:
su - askbot
virtueller askbot
Sie sollten die folgende Ausgabe sehen:
erstellte virtuelle Umgebung CPython2.7.16.final.0-64 in 663 ms Ersteller CPython2Posix(dest=/home/askbot/askbot, clear=False, global=False) Seeder FromAppData(download=False, pip=latest, setuptools=Latest, wheel=latest, via=copy, app_data_dir=/tmp/tmp9YFr7B/seed-app-data/v1) Aktivatoren PythonActivator, CShellActivator, FishActivator, PowerShellActivator, BashActivator
Wechseln Sie als Nächstes in das Verzeichnis askbot und aktivieren Sie die virtuelle Umgebung mit dem folgenden Befehl:
cd askbot
source bin/activate
Ausgabe:
(askbot) [[email protected] askbot]$
Installieren Sie als Nächstes Askbot und andere erforderliche Abhängigkeiten mit dem folgenden Befehl:
pip2 install six==1.10.0
pip2 install askbot psycopg2
Erstellen Sie als Nächstes ein neues Verzeichnis für Ihre Anwendung, ändern Sie das Verzeichnis in Ihre Anwendung und richten Sie den Askbot mit dem folgenden Befehl ein:
mkdir myapp
cd myapp
askbot-setup
Sie sollten die folgende Ausgabe sehen:
Bereitstellen von Askbot - Django Q&A Forum AnwendungProbleme bei der Installation? -> bitte senden Sie eine E-Mail an [email protected]Zum ABBRECHEN - drücken Sie jederzeit Strg-C. Geben Sie den Verzeichnispfad (absolut oder relativ) zum Bereitstellen von Askbot ein. Um das aktuelle Verzeichnis auszuwählen, geben Sie "."> .ein
Typ "." und drücken Sie Enter weitermachen. Sie sollten die folgende Ausgabe sehen:
Bitte Datenbank-Engine auswählen:1 - für postgresql, 2 - für sqlite, 3 - für mysql, 4 - oracletype 1/2/3/4:1
Geben Sie 1 ein, um eine Postgresql-Datenbank-Engine auszuwählen, und drücken Sie die Eingabetaste, um fortzufahren. Sie sollten die folgende Ausgabe sehen:
Bitte Datenbanknamen eingeben (erforderlich)> askbotBitte Datenbankbenutzer eingeben (erforderlich)> askbotBitte Datenbankpasswort eingeben (erforderlich)> Passwort
Geben Sie Ihre Askbot-Datenbankdetails ein und drücken Sie Enter . Sobald die Installation abgeschlossen ist, sollten Sie die folgende Ausgabe sehen:
Dateien kopieren:* __init__.py * manage.py * urls.py * django.wsgi Einstellungsdatei erstellenEinstellungsdatei erstelltKopieren von Verzeichnissen:* doc* cron* upfilesFertig. Weitere Anweisungen finden Sie unter http://askbot.org/doc/
Generieren Sie als Nächstes die statischen Dateien und die Datenbank von Askbot Django mit dem folgenden Befehl:
python manage.py collectstatic
python manage.py syncdb
Geben Sie Ihren gewünschten Admin-Benutzernamen, Ihre E-Mail-Adresse und Ihr Passwort wie unten gezeigt ein:
Sie haben das Authentifizierungssystem von Django installiert und keine Superuser definiert. Möchten Sie jetzt einen erstellen? (ja/nein):jaBenutzername (leer lassen, um „askbot“ zu verwenden):askbotadminE-Mail-Adresse:[E-Mail-geschützt]Passwort:Passwort (erneut):Superuser erfolgreich erstellt.
uWSGI installieren und konfigurieren
Als nächstes müssen Sie uWSGI auf Ihrem System installieren. uWSGI ist ein Softwaretool zum Ausführen von Python-basierten Webanwendungen. Sie können es mit dem folgenden Befehl installieren:
pip2 installiere uwsgi
Erstellen Sie nach der Installation von uWSGI mit dem folgenden Befehl ein neues Verzeichnis für uWSGI:
mkdir -p /etc/uwsgi/sites
Als nächstes erstellen Sie eine neue uWSGI-Konfigurationsdatei wie unten gezeigt:
nano /etc/uwsgi/sites/askbot.ini
Fügen Sie die folgenden Zeilen hinzu:
[uwsgi]chdir =/home/askbot/askbot/myapphome =/home/askbot/askbotstatic-map =/m=/home/askbot/askbot/myapp/staticwsgi-file =/home/askbot/askbot/myapp /django.wsgimaster =trueprocesses =5# Askbot wird unter den Sock-Dateien ausgeführt vor>Erstellen Sie eine Systemd-Dienstdatei für uWSGI
Als Nächstes müssen Sie eine systemd-Dienstdatei erstellen, um den uWSGI-Dienst zu verwalten. Sie können es mit dem folgenden Befehl erstellen:
nano /etc/systemd/system/uwsgi.serviceFügen Sie die folgenden Zeilen hinzu:
[Unit]Description=uWSGI-Dienst[Service]ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown askbot:nginx /run/uwsgi'ExecStart=/bin/uwsgi --emperor /etc/uwsgi/sitesRestart=alwaysKillSignal=SIGQUITType=notifyNotifyAccess=all[Install]WantedBy=multi-user.targetSpeichern und schließen Sie die Datei, wenn Sie fertig sind. Laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reloadNginx installieren und konfigurieren
Als Nächstes müssen Sie Nginx installieren und konfigurieren, um Ihre Askbot-Anwendung bereitzustellen.
Installieren Sie zuerst den Nginx-Webserver mit dem folgenden Befehl:
dnf install nginx -yErstellen Sie nach der Installation eine neue virtuelle Host-Konfigurationsdatei für Askbot:
nano /etc/nginx/conf.d/askbot.confFügen Sie die folgenden Zeilen hinzu:
server {listen 80; Servername askbot.linuxbuz.com; Ort / { uwsgi_params einschließen; uwsgi_pass unix:/run/uwsgi/askbot.sock; } }Speichern und schließen Sie die Datei. Starten Sie dann den Nginx- und uWSGI-Dienst und ermöglichen Sie ihnen, nach dem Systemneustart mit dem folgenden Befehl zu starten:
systemctl start nginx
systemctl enable nginx
systemctl start uwsgi
systemctl enable uwsgiSichern Sie Askbot mit Let's Encrypt SSL
Als nächstes müssen Sie das Dienstprogramm Certbot auf Ihrem System installieren, um Let's Encrypt SSL für die Askbot-Domäne herunterzuladen und zu installieren.
Sie können den Certbot-Client mit dem folgenden Befehl installieren:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot- auto
chmod 0755 /usr/local/bin/certbot-autoAls nächstes erhalten und installieren Sie ein SSL-Zertifikat für Ihre Askbot-Domain mit dem folgenden Befehl:
certbot-auto --nginx -d askbot.linuxbuz.comDer obige Befehl installiert zunächst alle erforderlichen Abhängigkeiten auf Ihrem Server. Nach der Installation werden Sie aufgefordert, eine E-Mail-Adresse anzugeben und die Nutzungsbedingungen wie unten gezeigt zu akzeptieren:
Speichern des Debug-Protokolls in /var/log/letsencrypt/letsencrypt.logAusgewählte Plugins:Authenticator nginx, Installer nginxE-Mail-Adresse eingeben (wird für dringende Verlängerungs- und Sicherheitshinweise verwendet) (Geben Sie „c“ zum Abbrechen ein):[email protected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bitte lesen Sie die Nutzungsbedingungen unter https://letsencrypt.org /documents/LE-SA-v1.2-November-15-2017.pdf. Sie müssen zustimmen, um sich beim ACME-Server unter https://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - zu registrieren - - - - - - - - - - - - - - -(A)gree/(C)cancel:A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wären Sie bereit, Ihre E-Mail-Adresse mit der Electronic Frontier Foundation, einem Gründungspartner des Let's Encrypt-Projekts und der gemeinnützigen Organisation, die Certbot entwickelt, zu teilen? Wir möchten Ihnen E-Mails über unsere Arbeit zur Verschlüsselung des Internets, EFF-Nachrichten, Kampagnen und Möglichkeiten zur Unterstützung der digitalen Freiheit senden.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(Y)es/(N)o:YBeziehen eines neuen ZertifikatsAusführen der folgenden Herausforderungen:http-01-Herausforderung für askbot.linuxbuz.comWarten auf Überprüfung...Reinigung upherausforderungenBereitstellen des Zertifikats auf VirtualHost /etc/nginx/conf.d/askbot.confWählen Sie als Nächstes aus, ob der HTTP-Datenverkehr wie unten gezeigt an HTTPS umgeleitet werden soll:
Bitte wählen Sie aus, ob der HTTP-Datenverkehr auf HTTPS umgeleitet werden soll oder nicht, und den HTTP-Zugriff entfernen.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1:Keine Umleitung – Nehmen Sie keine weiteren Änderungen an der Webserver-Konfiguration vor.2:Umleitung – Alle Anfragen werden auf sicheren HTTPS-Zugriff umgeleitet. Wählen Sie dies für neue Websites oder wenn Sie sicher sind, dass Ihre Website auf HTTPS funktioniert. Sie können diese Änderung rückgängig machen, indem Sie die Konfiguration Ihres Webservers bearbeiten. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wählen Sie die entsprechende Nummer [1-2] und dann [enter] (drücken Sie 'c' zum Abbrechen):2Geben Sie 2 ein und drücken Sie Enter weitermachen. Sobald die Installation abgeschlossen ist, sollten Sie die folgende Ausgabe sehen:
Umleitung des gesamten Datenverkehrs auf Port 80 zu SSL in /etc/nginx/conf.d/askbot.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Herzliche Glückwünsche! Sie haben https://askbot.linuxbuz.com erfolgreich aktiviert. Sie sollten Ihre Konfiguration testen unter:https://www.ssllabs.com/ssltest/analyze.html?d=askbot.linuxbuz.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -WICHTIGE HINWEISE:- Herzlichen Glückwunsch! Ihr Zertifikat und Ihre Kette wurden gespeichert unter:/etc/letsencrypt/live/askbot.linuxbuz.com/fullchain.pem Ihre Schlüsseldatei wurde gespeichert unter:/etc/letsencrypt/live/askbot.linuxbuz.com/privkey.pem Ihre Das Zertifikat läuft am 11.06.2020 ab. Um in Zukunft eine neue oder optimierte Version dieses Zertifikats zu erhalten, führen Sie einfach certbot-auto erneut mit der Option „certonly“ aus. Um *all* Ihre Zertifikate nicht interaktiv zu erneuern, führen Sie „certbot-auto renew“ aus – Wenn Sie Certbot mögen, erwägen Sie bitte, unsere Arbeit zu unterstützen, indem Sie:Spenden an ISRG / Let’s Encrypt:https://letsencrypt.org/donate Spenden an EFF:https://eff.org/donate-leFirewall und SELinux konfigurieren
Als Nächstes müssen Sie eine Firewall-Regel erstellen, um den HTTP- und HTTPS-Dienst von externen Netzwerken zuzulassen. Sie können es mit dem folgenden Befehl zulassen:
firewall-cmd --permanent --add-service=httpfirewall-cmd --permanent --add-service=https
firewall-cmd --reloadStandardmäßig ist SELinux in CentOS 8 aktiviert. Es wird empfohlen, es zu deaktivieren, damit Askbot ordnungsgemäß funktioniert. Sie können es deaktivieren, indem Sie die Datei /etc/selinux/config bearbeiten:
nano /etc/selinux/configSuchen Sie die folgende Zeile:
SELINUX=erzwingenUnd ersetzen Sie es durch die folgende Zeile:
SELINUX=deaktiviertSpeichern und schließen Sie die Datei. Starten Sie dann Ihr System neu, um die Änderungen zu übernehmen:
Auf Askbot zugreifen
Öffnen Sie nun Ihren Webbrowser und geben Sie die URL https://askbot.linuxbuz.com ein. Sie werden zu folgendem Bildschirm weitergeleitet:
Klicken Sie auf das Zeichen in Taste. Sie sollten die Anmeldeseite von Askbot auf dem folgenden Bildschirm sehen:
Geben Sie Ihren Askbot-Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf das Zeichen in Taste. Sie sollten das Askbot-Dashboard auf dem folgenden Bildschirm sehen:
Schlussfolgerung
Herzliche Glückwünsche! Sie haben das Askbot-Forum erfolgreich auf CentOS 8 installiert und konfiguriert und mit Let’s Encrypt SSL gesichert. Sie können jetzt mit dem Erstellen einer Frage und Antwort mit Askbot beginnen.