Outils pour utilisateurs

Outils du site


linux:apache-wsgi

Table des matières

Apache2 & wsgi

Install

  1. Installer les paquets:
    apt update && apt dist-upgrade
    apt install apache2 python3 python3-pip python3-venv
  2. 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
  1. Créer un fichier app.py
    nano app.py

    Avec le contenu:

    app.py
    from flask import Flask
    app = Flask(__name__)
     
    @app.route('/')
    def index():
        return 'Hello World'
  1. Tester la base:
    export FLASK_APP=app.py
    flask run --host=0.0.0.0
  2. Quitter l'envirronnement:
    deactivate
  1. Installer le module wsgi pour apache:
    apt install libapache2-mod-wsgi-py3
  2. Créer un fichier flask-app:
    nano /opt/flask-app/flask-app.wsgi

    Contenu:

    flask-app.wsgi
    import sys
    sys.path.insert(0,'/opt/flask-app')
     
    from app import app as application
  1. Créer un fichier de configuration Python:
    nano /etc/apache2/sites-available/flask.conf

    Contenu:

    flask.conf
    <VirtualHost *:80>
    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
     
    <Directory /opt/flask-app>
    WSGIProcessGroup app
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Require all granted
    </Directory>
    </VirtualHost>
  2. Activer le nouveau virtualhost et désactiver celui par défaut:
    a2dissite 000-default.conf
    a2ensite flask.conf

Sources

linux/apache-wsgi.txt · Dernière modification : de root