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

Comment installer et configurer Askbot avec Nginx sur CentOS 7

Askbot est un logiciel open source permettant de créer des forums de questions-réponses basés sur Python Django Framework. Il s'agit essentiellement d'un système de questions-réponses comme StackOverflow, Yahoo Answers et autres. Créé par Mike Chan et Sailing Cai en 2009, il est facile à installer et à configurer sur des systèmes Linux comme Ubuntu et CentOS. De nombreux grands projets de logiciels open source comme Fedora et LibreOffice l'utilisent.

Dans ce didacticiel, nous allons vous montrer comment installer l'application Askbot Python Django à l'aide du serveur Web uWSGI et Nginx sur le système CentOS 7. En ce qui concerne la base de données, nous utiliserons PostgreSQL pour l'installation d'Askbot.

Ce que nous allons faire

  1. Installer les dépendances
  2. Installer et configurer PostgreSQL
  3. Installer et configurer Askbot
  4. Installer et configurer uWSGI
  5. Installer et configurer le serveur Web Nginx
  6. Tester la configuration

Prérequis

  • Serveur CentOS 7
  • Privilèges root

Étape 1 - Installer les dépendances

Dans cette étape, nous allons installer certains packages nécessaires à une installation réussie d'Askbot. Il s'agit notamment des "outils de développement", du référentiel Epel et de certains outils liés à Python (pour la gestion des packages Python). Alors commençons.

Tout d'abord, installez CentOS 'Development Tools' avec la commande yum group ci-dessous.

yum group install 'Development Tools'

Installez ensuite le dépôt Epel.

yum -y install epel-release

Et enfin, installez les packages python, y compris python pip, python-devel et python six.

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

Étape 2 - Installer et configurer PostgreSQL

Nous avons maintenant besoin de la base de données PostgreSQL, qui est disponible dans le référentiel CentOS. Dans cette section, nous verrons comment vous pouvez installer la base de données PostgreSQL, modifier l'utilisateur du mot de passe postgres, créer un nouvel utilisateur et une nouvelle base de données pour l'installation d'Askbot, et enfin, modifier la configuration d'authentification postgres.

Commençons donc par installer PostgreSQL à partir du référentiel à l'aide de la commande yum ci-dessous.

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

Une fois l'installation terminée, nous devons initialiser la base de données, ce que vous pouvez faire à l'aide de la commande ci-dessous.

postgresql-setup initdb

Ensuite, démarrez postgres et activez-le pour qu'il se lance automatiquement au démarrage.

systemctl start postgresql
systemctl enable postgresql

À ce stade, la base de données PostgreSQL doit être installée. Ensuite, nous devons réinitialiser le mot de passe de l'utilisateur postgres. Pour cela, connectez-vous d'abord en tant qu'utilisateur 'postgres' et accédez à l'outil de ligne de commande psql.

su - postgres
psql

Et donnez ensuite un nouveau mot de passe à l'utilisateur postgres.

\password postgres

Maintenant, créez une nouvelle base de données et un utilisateur pour Askbot. Par exemple, nous voulons créer un nouvel utilisateur 'hakaselabs ' avec le mot de passe 'hakase123 ', et la base de données nommée 'askbotdb '. Les requêtes postgres suivantes nous aideront à créer tout cela.

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

Alors maintenant, une base de données et un utilisateur pour l'installation d'Askbot ont été créés. L'étape suivante consiste à modifier la configuration de postgres pour la configuration de l'authentification, ce que vous pouvez faire en vous rendant dans le répertoire "pgsql/data" et en modifiant le fichier "pg_hba.conf" avec vim.

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

Une fois dans le fichier, changez toutes les authentifications en md5, comme indiqué ci-dessous.

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

Maintenant, enregistrez et quittez le fichier, puis redémarrez le service postgres.

systemctl restart postgresql

Donc maintenant, la base de données PostgreSQL a été installée; la base de données pour l'installation d'Askbot a été créée ; et la méthode d'authentification de l'utilisateur postgres a été remplacée par md5.

Étape 3 - Installer et configurer Askbot

Dans cette étape, nous aborderons l'installation et la configuration d'Askbot. Nous allons installer Askbot sous un utilisateur nommé 'askbot' et en utilisant le python virtualenv. Alors commençons.

Tout d'abord, créez un nouvel utilisateur "askbot" et attribuez-lui un nouveau mot de passe.

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

Ajoutez ensuite l'utilisateur 'askbot' au groupe 'wheel' pour l'accès à la commande sudo (vous ne savez pas ce qu'est 'sudo' ? En savoir plus ici).

usermod -a -G wheel askbot

Maintenant, mettez à niveau pip vers la dernière version et installez le package python virtualenv.

pip install --upgrade pip
pip install virtualenv six

Suivant. connectez-vous en tant qu'utilisateur 'askbot' et créez un nouvel environnement virtuel python 'hakase-labs' avec virtualenv.

su - askbot
virtualenv hakase-labs/

Allez dans le répertoire 'hakase-labs' et activez l'environnement virtuel pour l'installation d'Askbot.

cd hakase-labs/
source bin/activate

Installez maintenant askbot et d'autres packages python avec la commande pip sur l'environnement virtuel 'hakase-labs'.

pip install six 
pip install askbot psycopg2

Ensuite, créez un nouveau répertoire pour le projet 'Askbot'. Assurez-vous de ne pas utiliser "askbot" comme nom de répertoire. Dans notre cas, par exemple, nous avons créé un nouveau répertoire nommé 'myapp'

mkdir myapp/

Allez dans le répertoire myapp et exécutez la commande 'askbot-setup'.

cd myapp/
askbot-setup

La commande 'askbot-setup' vous demandera certaines choses. Par exemple, on vous demandera le chemin du répertoire pour déployer Askbot - vous pouvez taper '.' et appuyez sur Entrée pour continuer. De même, lorsque vous êtes interrogé sur le moteur de base de données, tapez '1' pour utiliser postgresql et appuyez sur Entrée. Pour les détails liés à la base de données, entrez le nom de la base de données sous la forme 'askbotdb', l'utilisateur de la base de données sous la forme 'hakaselabs' et le mot de passe sous la forme 'hakase123'.

Askbot est donc maintenant installé dans le répertoire 'myapp'. Nous devons maintenant générer les fichiers statiques Askbot Django et la base de données.

Exécutez la commande ci-dessous pour générer des fichiers statiques Askbot Django.

python manage.py collectstatic

Lorsque vous êtes invité à confirmer, tapez "oui" et appuyez sur Entrée.

Maintenant, pour générer la base de données, exécutez syncdb comme ci-dessous.

python manage.py syncdb

Il vous sera demandé de créer l'utilisateur admin et le mot de passe. Ainsi, lorsque vous y êtes invité, saisissez le nom d'utilisateur, l'e-mail et le mot de passe pour la configuration de l'administrateur.

Donc, à ce jour, Askbot a été installé, les fichiers statiques ont été générés et la configuration de la base de données est terminée.

Vous pouvez tester l'installation d'Askbot avec la commande runserver ci-dessous.

python manage.py runserver 0.0.0.0:8080

Ouvrez votre navigateur Web et tapez l'adresse IP du serveur, et vous devriez voir une page semblable à la suivante :

Étape 4 - Installer et configurer uWSGI

Nous utiliserons uWSGI comme service pour le projet Askbot Django. Plus précisément, nous utiliserons uWSGI avec le serveur Web Nginx pour l'installation d'Askbot. Alors commençons.

Tout d'abord, installez uWSGI à l'aide de la commande pip, comme indiqué ci-dessous.

sudo pip install uwsgi

Une fois l'installation terminée, créez un nouveau répertoire pour les fichiers de l'hôte virtuel uWSGI. Par exemple, dans notre cas, nous avons créé '/etc/uwsgi/sites'.

mkdir -p /etc/uwsgi/sites

Accédez au répertoire nouvellement créé et créez une nouvelle configuration askbot uWSGI avec vim.

cd /etc/uwsgi/sites
vim askbot.ini

Collez la configuration suivante dans le fichier.

[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

C'est ça. Enregistrez le fichier et quittez l'éditeur.

Ensuite, ajoutez le nouveau fichier de script de service uWSGI au répertoire '/etc/systemd/system'. Allez dans le répertoire et créez le fichier 'uwsgi.service' avec vim.

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

Collez la configuration de service uWSGI suivante dans le fichier.

[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

Enregistrez et quittez.

Maintenant, rechargez les services systemd et activez uWSGI pour qu'il démarre automatiquement au démarrage.

systemctl daemon-reload
systemctl enable uwsgi

Ainsi, avec cela, uWSGI a été installé et vous devriez le voir fonctionner en tant que service.

Étape 5 - Installer et configurer le serveur Web Nginx

Ainsi, Askbot est maintenant installé et il s'exécute sous le fichier de chaussette uWSGI 'askbot.sock'. Dans cette étape, nous utiliserons le serveur Web Nginx comme proxy inverse pour l'application uWSGI "Askbot".

Pour commencer, installez Nginx avec la commande yum.

yum -y install nginx

Allez maintenant dans le répertoire Nginx 'conf.d' et créez un nouveau fichier d'hôte virtuel 'askbot.conf' avec l'éditeur vim.

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

Collez la configuration Askbot Nginx suivante dans le fichier.

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

Enregistrez le fichier et quittez l'éditeur. Maintenant, testez la configuration pour vous assurer qu'il n'y a pas d'erreur.

nginx -t

Ensuite, démarrez les services Nginx et uWSGI.

systemctl start nginx
systemctl start uwsgi

Et permettez-leur de démarrer automatiquement au démarrage.

systemctl enable nginx
systemctl enable uwsgi

Nginx est donc maintenant installé en tant que proxy inverse pour l'application uWSGI "Askbot".

Étape 6 - Tester la configuration

Ouvrez votre navigateur Web et visitez le nom de domaine Askbot :askbot.me, et vous verrez la page d'accueil, comme indiqué ci-dessous.

Voici la page de connexion de l'utilisateur Askbot :

Tableau de bord utilisateur Askbot :

Paramètre d'administration Askbot :

Connexion administrateur Askbot Django :

Tableau de bord d'administration Askbot Django :

Ainsi, l'application système Q&A "Askbot" a été installée avec succès avec le serveur Web uWSGI et Nginx sur le serveur CentOS 7.


Cent OS
  1. Comment installer et configurer Nginx sur CentOS 8

  2. Comment installer et configurer Nginx sur CentOS 7

  3. Comment installer et configurer Redis sur CentOS 7

  4. Comment installer et configurer GitLab sur CentOS 7

  5. Comment installer et configurer Nextcloud avec Apache sur CentOS 7

Comment installer OwnCloud 8 avec Nginx et MariaDB sur CentOS 7

Comment installer et configurer OpenLiteSpeed ​​avec PHP 7 sur CentOS 7

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

Installation et configuration de PhpMyAdmin avec Nginx sur CentOS 7

Comment installer OwnCloud 8 avec Nginx et PHP-FPM sur CentOS 6

Comment installer et configurer MariaDB dans CentOS / RHEL 7