Skip to content

Guide pratique pour déployer une application Flask sur un serveur Apache en utilisant WSGI, incluant l'installation, la configuration et les bonnes pratiques pour une mise en production efficace.

Notifications You must be signed in to change notification settings

glodielukose/flask-wsgi-apache-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Déployer une Application Flask sur Apache avec WSGI

1. Table des Matières

2. Description

Ce guide vous montre comment déployer une application Flask sur un serveur Apache grâce à WSGI.

  • Flask : un micro-framework Python facilitant la création d'applications web.
  • Apache : un serveur web qui gère les différentes requêtes en production et les redirige vers les applications appropriées. Cependant, Apache ne peut pas traiter les requêtes Python seul ; une passerelle est nécessaire.
  • WSGI : une norme qui permet de connecter des applications web développées avec des frameworks comme Flask ou Django à des serveurs web tels qu'Apache ou Nginx.

Nous allons construire pas à pas une application Flask, puis la déployer sur un serveur Apache en utilisant une passerelle WSGI.

3. Prérequis

  • Python, Flask
  • Ubuntu 22.04

4. Installation

Commençons par installer Python, Apache et la passerelle WSGI sur notre machine via le terminal :

  • Mettez à jour les paquets :
    sudo apt update -y

1. Installation de Python

Installez Python avec les commandes suivantes :

sudo apt install python3 python3-pip python3-venv

2. Installation d'Apache

  • Installez Apache :
    sudo apt install apache2
  • Lancez Apache :
    sudo systemctl enable apache2 && sudo systemctl start apache2
  • Vérifiez le statut d'Apache :
    sudo systemctl status apache2

3. Installation de WSGI

Installez le module WSGI pour Apache :

sudo apt install libapache2-mod-wsgi-py3

5. Configuration de l'Environnement Python et de l’Application Flask

À cette étape, nous allons créer un environnement Python et cloner le projet sur notre machine.

1. Clonage du projet

  • Accédez au dossier www :
    cd /var/www
  • Clonez le projet :
    git clone <url project>

2. Création de l'Environnement Virtuel Python

  • Accédez au répertoire du projet :
    cd /var/www/flask-wsgi-apache-setup
  • Créez l'environnement virtuel dans le projet :
    python3 -m venv flask-venv
  • Activez l'environnement :
    source flask-venv/bin/activate

3. Installation des dépendances

Installez Flask :

pip3 install flask

Définissez la variable d'environnement FLASK_APP :

export FLASK_APP=app.py

Testez si tout fonctionne correctement :

flask run --host=0.0.0.0

Une fois le test terminé, désactivez l'environnement :

deactivate

6. Configuration d'Apache

Maintenant que notre application Flask est prête, nous devons la déployer sur un serveur Apache. Apache ne comprend pas directement le code Python, nous utiliserons donc WSGI pour servir notre application.

1. Configuration de WSGI

Créez un fichier .wsgi dans le répertoire de l’application :

nano flask-app.wsgi

Ajoutez le contenu suivant :

import sys
sys.path.insert(0, "/var/www/flask-wsgi-apache-setup")
from app import app as application

2. Configuration d'Apache

Accédez au dossier de configuration d'Apache :

cd /etc/apache2/sites-available

Créez un fichier de configuration :

nano flask-wsgi-apache-setup.conf

Ajoutez-y le contenu suivant, en remplaçant yourdomain.com par votre adresse IP :

<VirtualHost *:80>
  ServerName yourdomain.com
  DocumentRoot /var/www/flask-wsgi-apache-setup

  WSGIDaemonProcess app user=www-data group=www-data threads=5 python-home=/var/www/flask-wsgi-apache-setup/flask-venv
  WSGIScriptAlias / /var/www/flask-wsgi-apache-setup/flask-app.wsgi

  ErrorLog ${APACHE_LOG_DIR}/flask-error.log
  CustomLog ${APACHE_LOG_DIR}/flask-access.log combined

  <Directory /var/www/flask-wsgi-apache-setup>
    WSGIProcessGroup app
    WSGIApplicationGroup %{GLOBAL}
    Require all granted
  </Directory>
</VirtualHost>

Redémarrez Apache pour appliquer les modifications :

sudo a2dissite 000-default.conf
sudo a2ensite flask-wsgi-apache-setup.conf
sudo systemctl restart apache2

7. Tester l'Application

Pour vérifier que tout fonctionne, entrez l'adresse IP dans votre navigateur.

8. Ressources Utiles

9. Licence

MIT License

About

Guide pratique pour déployer une application Flask sur un serveur Apache en utilisant WSGI, incluant l'installation, la configuration et les bonnes pratiques pour une mise en production efficace.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages