GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Askbot avec Nginx et sécuriser avec Lets Encrypt sur CentOS 8

Askbot est un logiciel de forum de questions et réponses gratuit, open source et hautement personnalisable écrit en Python et Django. Il est simple, léger et très similaire aux autres logiciels de forum StackOverflow et YahooAnswers. Askbot fournit une tonne de fonctionnalités, notamment des balises et des catégories, des notifications par e-mail, un système basé sur le karma, le vote, la modération de contenu et bien d'autres.

Dans ce tutoriel, nous allons vous montrer comment installer le logiciel de forum Askbot sur CentOS 8 avec Let's Encrypt SSL.

Prérequis

  • Un serveur exécutant CentOS 8.
  • Un mot de passe root est configuré sur votre serveur.

Installer les dépendances requises

Avant de commencer, vous devrez installer certaines dépendances requises dans votre système.

Tout d'abord, installez les "Outils de développement" avec la commande suivante :

dnf group install 'Development Tools'

Ensuite, installez le référentiel EPEL et les autres dépendances Python avec la commande suivante :

dnf install epel-release -y
dnf install python2-pip python2-devel python2-six -y

Une fois tous les packages requis installés, vous pouvez passer à l'étape suivante.

Installer et configurer PostgreSQL

Askbot utilise PostgreSQL pour stocker ses données. Vous devrez donc l'installer dans votre système. Vous pouvez l'installer avec la commande suivante :

dnf install postgresql-server postgresql-devel postgresql-contrib -y

Une fois installé, initialisez la base de données avec la commande suivante :

postgresql-setup initdb

Vous devriez obtenir le résultat suivant :

ATTENTION :en utilisant une syntaxe d'argument obsolète, essayez --helpAVERTISSEMENT :les arguments sont transformés en :postgresql-setup --initdb --unit postgresql * Initialisation de la base de données dans '/var/lib/pgsql/data' * Initialisé, les journaux sont dans / var/lib/pgsql/initdb_postgresql.log

Ensuite, démarrez le service PostgreSQL et autorisez-le à démarrer après le redémarrage du système avec la commande suivante :

systemctl démarrer postgresql
systemctl activer postgresql

Ensuite, connectez-vous au shell PostgreSQL avec la commande suivante :

su - postgres
[[email protected] ~]$ psql

Sortie :

psql (10.6)Tapez "help" pour help.postgres=# 

Ensuite, créez une base de données et un utilisateur pour Askbot avec la commande suivante :

postgres=# créer un askbot de base de données ;
postgres=# créer un askbot utilisateur avec le mot de passe 'password' ;

Ensuite, accordez tous les privilèges à l'askbot avec la commande suivante :

postgres=# accorde tous les privilèges sur la base de données askbot à askbot ;

Enfin, quittez le shell PostgreSQL avec la commande suivante :

postgres=# \q

Ensuite, vous devrez configurer l'authentification des utilisateurs locaux pour PostgreSQL. Vous pouvez le faire en éditant le fichier pg_hba.conf :

nano /var/lib/pgsql/data/pg_hba.conf

Remplacez peer par md5 dans les lignes suivantes :

local tous tous hôte md5 tous tous 127.0.0.1/32 hôte md5 tous tous ::1/128 md5 

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service PostgreSQL pour appliquer les modifications :

systemctl redémarrer postgresql

Installer et configurer Askbot

Avant d'installer Askbot, vous devrez créer un utilisateur pour Askbot. Vous pouvez créer un nouvel utilisateur Askbot et définir un mot de passe avec la commande suivante :

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

Ensuite, ajoutez l'utilisateur Askbot au groupe wheel pour l'accès à la commande sudo :

usermod -a -G wheel askbot

Ensuite, installez le package python virtualenv avec la commande suivante :

pip2 install virtualenv six

Une fois installé, changez l'utilisateur pour askbot et créez un nouvel environnement virtuel pour Askbot avec la commande suivante :

su - askbot
askbot virtuel env

Vous devriez voir le résultat suivant :

créé un environnement virtuel CPython2.7.16.final.0-64 en 663ms créateur 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) activateurs PythonActivator,CShellActivator,FishActivator,PowerShellActivator,BashActivator

Ensuite, changez le répertoire en askbot et activez l'environnement virtuel avec la commande suivante :

cd askbot
source bin/activate

Sortie :

(askbot) [[email protected] askbot]$

Ensuite, installez Askbot et les autres dépendances requises avec la commande suivante :

pip2 install six==1.10.0
pip2 install askbot psycopg2

Ensuite, créez un nouveau répertoire pour votre application, modifiez le répertoire de votre application et configurez l'Askbot avec la commande suivante :

mkdir monapp
cd monapp
askbot-setup

Vous devriez voir le résultat suivant :

Déploiement d'Askbot - Application du forum de questions-réponses de DjangoProblèmes d'installation ? -> veuillez envoyer un e-mail à [email protected]Pour ANNULER - appuyez sur Ctr-C à tout momentEntrez le chemin du répertoire (absolu ou relatif) pour déployeraskbot. Pour choisir le répertoire actuel - entrez "."> .

Taper "." et appuyez sur Entrée continuer. Vous devriez voir le résultat suivant :

Veuillez sélectionner le moteur de base de données :1 - pour postgresql, 2 - pour sqlite, 3 - pour mysql, 4 - oracletype 1/2/3/4 :1

Tapez 1 pour sélectionner un moteur de base de données postgresql et appuyez sur Entrée pour continuer. Vous devriez voir le résultat suivant :

Veuillez saisir le nom de la base de données (obligatoire)> askbotVeuillez saisir l'utilisateur de la base de données (obligatoire)> askbotVeuillez saisir le mot de passe de la base de données (obligatoire)> mot de passe

Fournissez les détails de votre base de données Askbot et appuyez sur Entrée . Une fois l'installation terminée, vous devriez voir la sortie suivante :

Copie des fichiers :* __init__.py * manage.py * urls.py * django.wsgi Création du fichier de paramètrescréation du fichier de paramètresrépertoires de copie :* doc* cron* upfilesDone. Veuillez trouver des instructions supplémentaires sur http://askbot.org/doc/

Ensuite, générez les fichiers statiques et la base de données Askbot Django avec la commande suivante :

python manage.py collectstatic
python manage.py syncdb

Fournissez le nom d'utilisateur, l'adresse e-mail et le mot de passe de votre choix comme indiqué ci-dessous :

Vous avez installé le système d'authentification de Django et vous n'avez défini aucun superutilisateur. Voulez-vous en créer un maintenant ? (oui/non) :ouiNom d'utilisateur (laissez vide pour utiliser "askbot") :askbotadminAdresse e-mail :[email protected]Mot de passe :Mot de passe (à nouveau) :Superutilisateur créé avec succès.

Installer et configurer uWSGI

Ensuite, vous devrez installer uWSGI sur votre système. uWSGI est un outil logiciel utilisé pour exécuter des applications Web basées sur Python. Vous pouvez l'installer avec la commande suivante :

pip2 installer uwsgi

Après avoir installé uWSGI, créez un nouveau répertoire pour uWSGI avec la commande suivante :

mkdir -p /etc/uwsgi/sites

Ensuite, créez un nouveau fichier de configuration uWSGI comme indiqué ci-dessous :

nano /etc/uwsgi/sites/askbot.ini

Ajoutez les lignes suivantes :

[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 s'exécutera sous la chaussette filesocket =/run/uwsgi/askbot.sockchmod-socket =664uid =askbotgid =nginxvacuum =true# uWSGI Log fileogto =/var/log/uwsgi.log 

Créer un fichier de service Systemd pour uWSGI

Ensuite, vous devrez créer un fichier de service systemd pour gérer le service uWSGI. Vous pouvez le créer avec la commande suivante :

nano /etc/systemd/system/uwsgi.service

Ajoutez les lignes suivantes :

[Unit]Description=uWSGI service[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.target

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, rechargez le démon systemd avec la commande suivante :

rechargement du démon systemctl

Installer et configurer Nginx

Ensuite, vous devrez installer et configurer Nginx pour servir votre application Askbot.

Tout d'abord, installez le serveur Web Nginx avec la commande suivante :

dnf installer nginx -y

Une fois installé, créez un nouveau fichier de configuration d'hôte virtuel pour Askbot :

nano /etc/nginx/conf.d/askbot.conf

Ajoutez les lignes suivantes :

serveur { écoute 80 ; nom_serveur askbot.linuxbuz.com ; emplacement / { inclure uwsgi_params ; uwsgi_pass unix:/run/uwsgi/askbot.sock; } }

Enregistrez et fermez le fichier. Ensuite, démarrez le service Nginx et uWSGI et autorisez-les à démarrer après le redémarrage du système avec la commande suivante :

systemctl start nginx
systemctl enable nginx
systemctl start uwsgi
systemctl enable uwsgi

Sécuriser Askbot avec Let's Encrypt SSL

Ensuite, vous devrez installer l'utilitaire Certbot sur votre système pour télécharger et installer Let's Encrypt SSL pour le domaine Askbot.

Vous pouvez installer le client Certbot avec la commande suivante :

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-auto

Ensuite, obtenez et installez un certificat SSL pour votre domaine Askbot avec la commande suivante :

certbot-auto --nginx -d askbot.linuxbuz.com

La commande ci-dessus installera d'abord toutes les dépendances requises sur votre serveur. Une fois installé, il vous sera demandé de fournir une adresse e-mail et d'accepter les conditions d'utilisation comme indiqué ci-dessous :

Enregistrement du journal de débogage dans /var/log/letsencrypt/letsencrypt.logPlugins sélectionnés :authentificateur nginx, installateur nginxEntrez l'adresse e-mail (utilisée pour les renouvellements urgents et les avis de sécurité) (Entrez 'c' pour annuler) :[email protected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Veuillez lire les conditions d'utilisation sur https://letsencrypt.org /documents/LE-SA-v1.2-15-novembre-2017.pdf. Vous devez accepter afin de vous inscrire auprès du serveur ACME sur https://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel:A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Seriez-vous prêt à partager votre adresse e-mail avec l'Electronic FrontierFoundation, un partenaire fondateur du projet Let's Encrypt et l'organisation à but non lucratif qui développe Certbot ? Nous aimerions vous envoyer un e-mail sur notre travail de cryptage du Web, les actualités de l'EFF, les campagnes et les moyens de soutenir la liberté numérique.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(O)oui/(N)o :OBtention d'un nouveau certificatRéalisation des défis suivants :Challenge http-01 pour askbot.linuxbuz.comEn attente de vérification...Nettoyage relever des défisDéploiement d'un certificat sur VirtualHost /etc/nginx/conf.d/askbot.conf

Ensuite, sélectionnez si vous souhaitez ou non rediriger le trafic HTTP vers HTTPS comme indiqué ci-dessous :

Veuillez choisir de rediriger ou non le trafic HTTP vers HTTPS, en supprimant l'accès HTTP.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 :Pas de redirection - N'apporter aucune autre modification à la configuration du serveur Web.2 :Redirection - Rediriger toutes les requêtes vers un accès HTTPS sécurisé. Choisissez ceci pour les nouveaux sites ou si vous êtes sûr que votre site fonctionne sur HTTPS. Vous pouvez annuler cette modification en modifiant la configuration de votre serveur Web.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Sélectionnez le numéro approprié [1-2] puis [enter] (appuyez sur 'c' pour annuler) :2

Tapez 2 et appuyez sur Entrée continuer. Une fois l'installation terminée, vous devriez voir la sortie suivante :

Redirection de tout le trafic sur le port 80 vers SSL dans /etc/nginx/conf.d/askbot.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Toutes nos félicitations! Vous avez activé avec succès https://askbot.linuxbuz.comVous devriez tester votre configuration sur :https://www.ssllabs.com/ssltest/analyze.html?d=askbot.linuxbuz.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - REMARQUES IMPORTANTES :- Félicitations ! Votre certificat et votre chaîne ont été enregistrés sur :/etc/letsencrypt/live/askbot.linuxbuz.com/fullchain.pem Votre fichier de clé a été enregistré sur :/etc/letsencrypt/live/askbot.linuxbuz.com/privkey.pem Votre cert expirera le 2020-06-11. Pour obtenir une nouvelle version ou une version modifiée de ce certificat à l'avenir, exécutez simplement certbot-auto à nouveau avec l'option "certonly". Pour renouveler *tous* vos certificats de manière non interactive, exécutez "certbot-auto refresh" - Si vous aimez Certbot, veuillez envisager de soutenir notre travail en :faisant un don à ISRG / Let's Encrypt :https://letsencrypt.org/donate FEP :https://eff.org/donate-le

Configurer le pare-feu et SELinux

Ensuite, vous devrez créer une règle de pare-feu pour autoriser les services HTTP et HTTPS à partir de réseaux externes. Vous pouvez l'autoriser avec la commande suivante :

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Par défaut, SELinux est activé dans CentOS 8. Il est recommandé de le désactiver afin de faire fonctionner correctement Askbot. Vous pouvez le désactiver en éditant le fichier /etc/selinux/config :

nano /etc/selinux/config

Recherchez la ligne suivante :

SELINUX=appliquer

Et remplacez-le par la ligne suivante :

SELINUX=désactivé

Enregistrez et fermez le fichier. Redémarrez ensuite votre système pour appliquer les modifications :

Accéder à Askbot

Maintenant, ouvrez votre navigateur Web et tapez l'URL https://askbot.linuxbuz.com. Vous serez redirigé vers l'écran suivant :

Cliquez sur le signe dans bouton. Vous devriez voir la page de connexion Askbot dans l'écran suivant :

Fournissez votre nom d'utilisateur et votre mot de passe d'administrateur Askbot et cliquez sur Signer dans bouton. Vous devriez voir le tableau de bord Askbot dans l'écran suivant :

Conclusion

Toutes nos félicitations! vous avez installé et configuré avec succès le forum Askbot sur CentOS 8 et l'avez sécurisé avec Let's Encrypt SSL. Vous pouvez maintenant commencer à créer une question et une réponse avec Askbot.


Cent OS
  1. Sécurisez Nginx avec Lets Encrypt sur CentOS 7

  2. Comment installer et configurer Askbot avec Nginx sur CentOS 7

  3. Comment installer Shopware avec NGINX et Lets Encrypt sur CentOS 7

  4. Comment installer WonderCMS avec Nginx et Lets Encrypt SSL sur CentOS 7

  5. Comment installer et configurer Varnish Cache 6 avec Nginx sur CentOS 8

Comment installer OpenCart avec Nginx et Lets Encrypt sur Debian 10

Comment installer ElkArte Forum avec Apache et Lets Encrypt SSL sur CentOS 8

Comment installer Shopware 6 avec NGINX et Lets Encrypt sur CentOS 8

Comment installer PrestaShop avec Apache et Lets Encrypt SSL sur CentOS 8

Comment installer Moodle avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04

Comment installer MediaWiki avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04