====== Apache2 & wsgi ====== ===== Install ===== - Installer les paquets: apt update && apt dist-upgrade apt install apache2 python3 python3-pip python3-venv - Créer l'environnement: cd /opt && mkdir flask-app cd flask-app python3 -m venv flask-venv source flask-venv/bin/activate pip3 install flask - Créer un fichier app.py nano app.py Avec le contenu: from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello World' - Tester la base: export FLASK_APP=app.py flask run --host=0.0.0.0 - Quitter l'envirronnement: deactivate - Installer le module wsgi pour apache: apt install libapache2-mod-wsgi-py3 - Créer un fichier flask-app: nano /opt/flask-app/flask-app.wsgi Contenu: import sys sys.path.insert(0,'/opt/flask-app') from app import app as application - Créer un fichier de configuration Python: nano /etc/apache2/sites-available/flask.conf Contenu: ServerName yourdomain.com DocumentRoot /opt/flask-app/ WSGIDaemonProcess app user=www-data group=www-data threads=5 python-home=/opt/flask-app/flask-venv WSGIScriptAlias / /opt/flask-app/flask-app.wsgi ErrorLog ${APACHE_LOG_DIR}/flask-error.log CustomLog ${APACHE_LOG_DIR}/flask-access.log combined WSGIProcessGroup app WSGIApplicationGroup %{GLOBAL} Order deny,allow Require all granted - Activer le nouveau virtualhost et désactiver celui par défaut: a2dissite 000-default.conf a2ensite flask.conf ===== Sources ===== * https://www.bogotobogo.com/python/Flask/Python_Flask_HelloWorld_App_with_Apache_WSGI_Ubuntu14.php * https://www.rosehosting.com/blog/how-to-install-flask-on-ubuntu-22-04-with-apache-and-wsgi/