python: Apache + python + WSGI

Install d’un serveur apache avec execution python via WSGI

apt-get install apache2

apt-get install libapache2-mod-wsgi

/etc/init.d/apache2 restart

 

sans SSL

script python dans /var/www/stl-user

fichier /etc/apache2/sites-available/000-default.conf

    WSGIDaemonProcess stl-user-app python-path=/var/www/stl-user:/usr/local/lib/python2.7/site-packages user=www-data group=www-data processes=1 threads=5
    WSGIScriptAlias / /var/www/stl-user/init.py
    <Directory /var/www/stl-user>
        WSGIProcessGroup stl-user-app
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>

le fichier init.py doit exposer un objet de type application.

Avec SSL

script python dans /var/www/stl-user

install support ssl

apt-get install openssl
mkdir /etc/apache2/ssl

cré&ation du certificat apache

/usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

nom du site url utiliser pour la connexion

NE PAS modifier le fichier /etc/apache2/ports.conf

Dans le fichier  /etc/apache2/sites-available/default-ssl.conf

Commenter « # » toute référence à d’autres certificats que celui que nous venons de générer

ajouter notre certificat à la fin du bloc  </VirtualHost>

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem

ainsi que la référence à notre siite

    WSGIDaemonProcess stl-user-app python-path=/var/www/stl-user:/usr/local/lib/python2.7/site-packages user=www-data group=www-data processes=1 threads=5
    WSGIScriptAlias / /var/www/stl-user/init.py
    <Directory /var/www/stl-user>
        WSGIProcessGroup stl-user-app
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>

Activation ssl

activer le site default-ssl

redémarrer apache

a2enmod ssl
a2ensite default-ssl
sudo /etc/init.d/apache2 restart

 

Variables d’environnement

La définition de variable d’environnempent qui seront transmises au module wgsi puis vers python peuvent etre faites dans le fichier:

/etc/apache2/envvars

par exemple le definition d’une variable pour un service (utilisateur sans fichier .baschrc) dans mon cas www-data

est faite via ce fichier

export LD_LIBRARY_PATH=/etc/oracle/instantclient

 

 

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *