Dans ce tutoriel nous allons voir comment mettre en production un projet Django sur un serveur debian 10 avec Apache.
Les pré-requis
- Un serveur debian 10 installé
- Un serveur web apache2 installé
- Un projet django installé dans le dossier /opt/django-deploy-production-example, pour le tutoriel nous prendrons ce projet : https://gitlab.com/julienanne/django-deploy-production-example avec l’environnement configuré pour ce projet django sous le dossier /opt/django-deploy-production-example/venv
Configurons le serveur web apache2 pour notre projet Django
Nous avons donc un serveur web apache2 qui est installé sur le serveur, nous allons maintenant créer le virtualhost associé pour rendre accessible notre projet mais avant cela nous avons besoin d’un module spécifique WSGI.
Pour installer ce module rien de plus simple, en root lancer la commande suivante :
apt install libapache2-mod-wsgi-py3
Éditer maintenant un virtualhost /etc/apache2/sites-available/mon-site.conf
et mettre les directives suivantes.
<VirtualHost *:80> # Ne pas mettre cette directive si vous n'avez pas de nom de domaine et que vous accéder à votre serveur par ip ServerName mon-nom-de-domaine # Les 4 lignes suivantes permettent de servir des fichiers dits statiques images, css, js, ... Alias /static /opt/django-deploy-production-example/static <Directory /opt/django-deploy-production-example/static> Require all granted </Directory> <Directory /opt/django-deploy-production-example/djangoexample> <Files wsgi.py> Require all granted </Files> </Directory> WSGIDaemonProcess djangoexample python-home=/opt/django-deploy-production-example/venv python-path=/opt/django-deploy-production-example WSGIProcessGroup djangoexample WSGIScriptAlias / /opt/django-deploy-production-example/djangoexample/wsgi.py </VirtualHost>
Il nous faut maintenant donner les bons droits sur les dossier pour le groupe www-data
chmod 775 /opt/django-deploy-production-example/ chown :www-data /opt/django-deploy-production-example
Activons maintenant ce nouveau virtualhost avec la commande suivante a2ensite mon-site
puis systemctl restart apache2
.
Ok donc à ce moment là nous avons un projet qui tourne sur un serveur debian 10 avec apache2 et son module WSGI. Passons à la suite. Rendez-vous sur le sommaire du tutoriel pour continuer votre lecture.
Image par Gerd Altmann de Pixabay
Tutoriel Django MySql Debian 10 Apache2 Let’s Encrypt Gitlab – Actus Julien ANNE
[…] Installation du module WSGI et configuration […]