Django-fr

Forum

  • Accueil
  • » Django-fr
  • » Apache2+mod_wsgi+venv: quels droits pour l'environ. virtuel Python ?

#1 11-07-2017 16:16:53

olivier2831
Membre
Inscription : 11-07-2017
Messages : 5

Apache2+mod_wsgi+venv: quels droits pour l'environ. virtuel Python ?

Bonjour,

J'essaie de mettre en pré-production ma première application Django.
Celle-ci est installée sur une plateforme Debian 9 sur laquelle la version par défaut de Python est la version 2.7.
J'ai développé l'application dans un environnement virtuel venv de Python 3.5.

1. Est-il bien possible de faire tourner une application Django dans un environnement virtuel créé avec la commande venv de Python 3.5 ?

2. Est-il possible (et recommandé) de faire tourner l'application Django (et celle-ci seulement) sous un autre utilisateur que www-data ?

3. Si l'application Django doit tourner sous l'utilisateur www-data du groupe eponyme, quels droits doivent être accordés aux (inombrables) fichiers de
l'environnement virtuel ? J'imagine qu'en premier lieu le fichier bin/activate doit par exemple être exécutable par www-data mais est-ce bien exact ?

4. Conseils et suggestions ?

Par avance, merci.
Slts

Hors ligne

#2 12-07-2017 09:24:50

olivier2831
Membre
Inscription : 11-07-2017
Messages : 5

Re : Apache2+mod_wsgi+venv: quels droits pour l'environ. virtuel Python ?

Bonjour,

En (re)lisant [1], j'ai retrouvé l'option user=<username> de la directive WSGIDaemonProcess.
Elle semble donner la possibilité de faire tourner une application Django sous un username particulier.

Qu'en penser ?

[1] http://modwsgi.readthedocs.io/en/develo … ocess.html

Hors ligne

#3 12-07-2017 12:40:14

olivier2831
Membre
Inscription : 11-07-2017
Messages : 5

Re : Apache2+mod_wsgi+venv: quels droits pour l'environ. virtuel Python ?

Après de multiples essais, j'ai réussi à faire tourner mon appli Django dans son nouvel environnement.
J'espère que les notes ci-après pourront être utiles à d'autres.
Surtout, n'hésitez pas à enrichir cette discussion par vos remarques et commentaires.

Voici ce que j'ai retenu:
- il est possible de faire tourner l'application par le même utilisateur (non root) avec lequel l'application a été développée
- si l'application opère sur un réseau local, ajouter à sa machine hôte une IP privée réservée à son application simplifie les choses.

Voici un exemple de fichier /etc/apache2/sites-available/foobar.conf (activé par a2ensite foobar):
<VirtualHost monsite:80>
        WSGIDaemonProcess monsite python-home=/home/moi/Documents/PyVenvs/monvenv python-path=/home/user/Documents/Projects/monsite user=moi
        WSGIProcessGroup monsite
        WSGIScriptAlias / /home/user/Documents/Projects/monsite/monsite/wsgi.py

        <Directory /home/moi/Documents/Projects/monsite>
                <Files wsgi.py>
                Require all granted
                </Files>
        </Directory>
</VirtualHost>

Slts

Hors ligne

  • Accueil
  • » Django-fr
  • » Apache2+mod_wsgi+venv: quels droits pour l'environ. virtuel Python ?

Pied de page des forums