====== Setup Production (OLD) ======
===== Déploiement sur un serveur Apache =====
À 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
* Créer un dossier, par exemple **/var/www/flaskapp/**
* Créer un environnement virtuel
* Y installer Flask
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 :
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
AllowOverride all
Require all granted
Allow from all
ErrorLog ${APACHE_LOG_DIR}/monsite.com/error.log
CustomLog ${APACHE_LOG_DIR}/monsite.com/access.log combined
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