À lire : https://www.bogotobogo.com/python/Flask/Python_Flask_HelloWorld_App_with_Apache_WSGI_Ubuntu14.php
Sur un serveur Ubuntu 18.04 disposant déjà d'Apache 2.4.
Installer mod_wsgi
sudo apt install libapache2-mod-wsgi-py3
Installer python3-venv
sudo apt install python3-venv
sudo mkdir /var/www/flaskapp cd /var/www/flaskapp sudo python3 -m venv venv source venv/bin/activate sudo pip3 install Flask
Copier les fichiers de l'application.
/var/www/flaskapp ├── app.py ├── myapp.wsgi ├── static │ ├── js │ │ └── main.js │ └── css │ └── main.css ├── templates │ ├── article.html │ ├── base.html │ └── home.html └── venv └── ...
Contenu du fichier /var/www/flaskapp/myapp.wsgi :
#!/usr/bin/python import sys sys.path.insert(0, "/var/www/flaskapp/") from app import app as application
Créer un fichier de configuration pour Apache :
<VirtualHost *:80> ServerName monsite.com ServerAdmin admin@monsite.com WSGIDaemonProcess myapp user=www-data group=www-data threads=5 WSGIProcessGroup myapp WSGIScriptAlias / /var/www/flaskapp/myapp.wsgi <Directory /var/www/flaskapp/static> AllowOverride all Require all granted Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/monsite.com/error.log CustomLog ${APACHE_LOG_DIR}/monsite.com/access.log combined </VirtualHost>
Le dossier /var/log/apache2/monsite.com pour les logs doit exister.
Activer le site et recharger Apache :
sudo a2ensite monsite.conf sudo systemctl reload apache2