Askbot est un logiciel open source permettant de créer un forum de questions-réponses basé sur Python Django Framework. Il est similaire à d'autres systèmes de questions-réponses tels que StackOverflow et Yahoo Answers. L'outil a été utilisé par de grands projets de logiciels open source comme Fedora et LibreOffice. Askbot a été créé par Mike Chan et Sailing Cai en 2009, et il est facile à installer et à configurer sur des systèmes Linux comme Ubuntu et CentOS.
Dans ce didacticiel, nous allons vous montrer comment installer l'application Askbot Django en utilisant uWSGI et le serveur Web Nginx, et nous utiliserons Ubuntu 16.04 Xenial Xerus comme système d'exploitation principal.
Ce que nous allons faire :
- Installer les dépendances
- Installer et configurer la base de données PostgreSQL
- Installer et configurer Askbot
- Installer et configurer uWSGI
- Installer et configurer Nginx
- Test
Prérequis
- Ubuntu 16.04
- Privilèges root
Étape 1 - Installer les dépendances
La première étape que nous devons faire est d'installer les packages nécessaires à l'installation d'Askbot. Alors commençons. Connectez-vous à votre serveur Ubuntu en utilisant SSH.
ssh [email protected]
Ensuite, installez des packages tels que python-dev, pip, etc. avec la commande apt suivante.
apt install -y build-essential python-pip python-dev python-flup libpng12-dev zlib1g-dev libpng-dev libjpeg-dev python-setuptools
Tous les packages requis ont été installés.
Étape 2 - Installer et configurer la base de données PostgreSQL
Askbot prend en charge de nombreux systèmes de bases de données tels que MySQL, SQLite et PostreSQL. Dans ce didacticiel, nous utiliserons PostgreSQL comme système de base de données.
Nous allons installer PostgreSQL, configurer l'authentification pour l'utilisateur local, puis créer une nouvelle base de données et un nouvel utilisateur pour l'installation d'Askbot.
Installez la base de données PostgreSQL à l'aide de la commande apt suivante.
apt install -y postgresql postgresql-contrib
Modifiez maintenant le pg_hba.conf fichier avec vim pour configurer l'authentification de l'utilisateur local.
vim /etc/postgresql/9.5/main/pg_hba.conf
Modifiez toutes les authentifications d'utilisateurs locaux à l'aide de md5 comme ci-dessous.
local all all md5
Sauvegarder et quitter. Maintenant, redémarrez les services PostgreSQL et activez-le pour qu'il démarre automatiquement au démarrage du système.
systemctl restart postgresql
systemctl enable postgresql
Ensuite, nous devons créer une nouvelle base de données et un nouvel utilisateur pour l'installation d'Askbot. Pour notre cas, nous allons créer une nouvelle base de données 'askbotdb ' avec le nom d'utilisateur 'hakaselabs ' et le mot de passe 'hakase123 '.
Connectez-vous en tant que postgres user et accéder au shell PostgreSQL 'psql'.
su - postgres
psql
Changer le postgres mot de passe utilisateur avec votre propre mot de passe.
\password postgres
Et créez une nouvelle base de données 'askbotdb ' et un nouvel utilisateur 'hakaselabs ' avec le mot de passe 'hakase123 ' en utilisant les requêtes suivantes.
create database askbotdb;
create user hakaselabs with password 'hakase123';
grant all privileges on database askbotdb to hakaselabs;
\q
Une nouvelle base de données PostgreSQL pour l'installation d'Askbot a été créée.
Étape 3 - Installer et configurer l'application Askbot Django
Tous les packages nécessaires à l'installation d'Askbot ont été installés et la base de données PostgreSQL a été créée. Maintenant, la prochaine étape consiste à installer et configurer Askbot.
Nous devons créer un nouvel utilisateur pour l'installation d'Askbot, car nous n'utiliserons pas l'utilisateur root pour cela. Créez un nouvel utilisateur nommé 'askbot ' et attribuez un nouveau mot de passe à cet utilisateur.
useradd -m -s /bin/bash askbot
passwd askbot
Ensuite, ajoutez le askbot user au groupe sudo à l'aide de la commande usermod suivante.
usermod -a -G sudo askbot
Un nouvel utilisateur a été créé. Nous devons maintenant mettre à jour python-pip et installer le package virtualenv. Installez ces packages à l'aide des commandes pip suivantes.
pip install --upgrade pip
pip install virtualenv
Maintenant, connectez-vous en tant qu'utilisateur 'askbot' avec la commande su, puis installez Askbot.
su - askbot
Et nous voulons créer un nouvel environnement virtuel pour notre installation askbot. Créez un nouvel environnement virtuel avec la commande virtualenv.
virtualenv hakase-labs
Aller aux hakase-labs répertoire et activez le virtualenv.
cd hakase-labs/
source bin/activate
Installez l'application Askbot Django avec pip, y compris psycopg2 pour la connexion à la base de données PostgreSQL.
pip install askbot psycopg2
Une fois l'installation terminée, vous verrez le résultat comme indiqué ci-dessous.
Ensuite, créez un nouveau répertoire pour l'application Askbot Django - nous utiliserons le nom 'myapp'. Créez le répertoire et installez-y Askbot.
mkdir myapp/
cd myapp
Installez Askbot avec la commande ci-dessous.
askbot-setup
Lorsque vous êtes interrogé sur le répertoire d'installation d'Askbot, donnez simplement le seul '. ' et appuyez sur 'Entrée'. De même, pour la configuration de la base de données, choisissez PostgreSQL en choisissant le numéro '1 '. Entrez le nom de la base de données 'askbotdb ', nom d'utilisateur 'hakaselabs ' avec le mot de passe 'hakase123 '.
Maintenant, générez un répertoire de fichiers statiques avec la commande suivante.
python manage.py collectstatic
Tapez "oui" et appuyez sur Entrée pour continuer.
Générez la base de données PostgreSQL avec l'option syncdb.
python manage.py syncdb
Et il vous sera demandé de créer l'utilisateur administrateur - tapez "oui", puis tapez votre utilisateur administrateur, votre adresse e-mail et votre mot de passe.
Askbot est maintenant installé sur le système sous l'environnement virtuel de l'utilisateur « askbot ». Vous pouvez tester l'installation d'Askbot en exécutant 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 avec le port 8080, et vous verrez la page "Askbot", comme indiqué ci-dessous.
Étape 4 - Installer et configurer uWSGI
uWSGI prend en charge les applications basées sur Python, Perl et Ruby. Dans ce didacticiel, nous utiliserons uWSGI avec le serveur Web Nginx pour notre installation Askbot. Installez uWSGI avec la commande pip suivante.
sudo pip install uwsgi
Créez maintenant un nouveau répertoire pour la configuration du site uWSGI '/etc/uwsgi/sites'.
mkdir -p /etc/uwsgi/sites
/etc/uwsgi/sites
Ajoutez le nouveau fichier de configuration uWSGI "askbot.ini" au répertoire "sites" et modifiez-le avec vim.
vim askbot.ini
Là, collez la configuration uWSGI suivante.
[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 = /home/askbot/hakase-labs/myapp/askbot.sock
chmod-socket = 664
uid = askbot
gid = www-data
vacuum = true
# uWSGI Log file
logto = /var/log/uwsgi.log
C'est ça. Enregistrez et quittez.
Ensuite, nous devons créer un nouveau fichier de service pour uWSGI. Accédez au répertoire '/etc/systemd/system/' et créez un nouveau fichier uwsgi.service à l'aide de vim.
cd /etc/systemd/system/
vim uwsgi.service
Collez-y la configuration de service uWSGI suivante.
[Unit]
Description=uWSGI Emperor service
[Service]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown askbot:www-data /run/uwsgi'
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all
[Install]
WantedBy=multi-user.target
Sauvegarder et quitter. Ensuite, rechargez les services systemd.
systemctl daemon-reload
Maintenant, démarrez le service uWSGI et activez-le pour qu'il se lance automatiquement au démarrage du système.
systemctl start uwsgi
systemctl enable uwsgi
uWSGI a été installé et configuré pour notre application Askbot, et il fonctionne en tant que service système.
Étape 5 - Installer et configurer Nginx
Askbot est maintenant installé et s'exécute sous le fichier chaussette uWSGI "askbot.sock". Dans cette étape, nous utiliserons le serveur Web Nginx comme proxy inverse pour l'application uWSGI Askbot.
Installez Nginx à partir du référentiel à l'aide de la commande apt suivante.
apt install nginx
Une fois l'installation terminée, accédez au répertoire de configuration nginx "/etc/nginx/" et ajoutez le nouveau fichier d'hôte virtuel nginx "askbot".
cd /etc/nginx
vim sites-available/askbot
Collez la configuration d'hôte virtuel askbot nginx suivante.
server {
listen 80;
server_name askbot.me www.askbot.me;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/askbot/hakase-labs/myapp/askbot.sock;
}
}
Enregistrez et quittez.
Activez maintenant le fichier d'hôte virtuel Askbot en créant un lien symbolique pour le fichier 'askbot' vers le répertoire 'sites-enabled' et testez la configuration nginx.
ln -s /etc/nginx/sites-available/askbot /etc/nginx/sites-enabled/
nginx -t
L'hôte virtuel Askbot est activé. Redémarrez maintenant les services nginx et activez-les pour qu'ils démarrent automatiquement au démarrage du système.
systemctl restart nginx
systemctl enable nginx
La configuration de Nginx est terminée et s'exécute sur le port 80. Vérifiez-le avec la commande netstat, comme indiqué ci-dessous.
netstat -plntu
Vérifiez maintenant askbot en vérifiant le fichier chaussette uWSGI à l'aide de la commande netstat suivante.
netstat -pl | grep askbot
Le serveur Web Nginx a été installé et configuré pour l'application Askbot Python Django.
Étape 6 - Tester
Ouvrez votre navigateur Web et visitez le nom de domaine Askbot :askbot.me, et vous devriez obtenir la page d'accueil comme indiqué ci-dessous.
Connexion utilisateur Askbot.
Tableau de bord utilisateur Askbot.
Paramètres Askbot.
Connexion administrateur Askbot Django.
Tableau de bord d'administration Askbot Django.
L'application système Q&A "Askbot" a été installée avec le serveur Web uWSGI et Nginx sur le serveur Ubuntu 16.04.