2010-03-25 17 views
1

Peut-on lancer Django dans un chroot? Notamment, qu'est-ce qui est nécessaire pour configurer (par exemple)/var/www en tant que répertoire chroot'd et ensuite exécuter Django dans ce répertoire chroot'd?Comment chrooter Django

Merci - Je vous suis reconnaissant pour toute contribution.

Répondre

2

Vous devrez ajouter un interpréteur Python à ce répertoire et y ajouter Django.

Une fois que vous avez l'environnement mis en place, vous devrez créer un script d'emballage qui fait quelque chose comme os.chroot('/var/www/') et vous avez terminé :)

Pour créer un environnement sandbox/chroot pour Python essayer un des les options suivantes: http://wiki.python.org/moin/Asking%20for%20Help/How%20can%20I%20run%20an%20untrusted%20Python%20script%20safely%20%28i.e.%20Sandbox%29?highlight=%28chroot%29 L'option PyPy semble devenir populaire depuis que Google a commencé à l'utiliser avec App-Engine.

+0

@WoLpH: Merci pour l'info - ce lien est cassé, cependant. –

+0

@Brian M. Hunt: le lien est fixé à nouveau, stackoverflow n'a pas aimé le) dans le lien;) – Wolph

+0

Great - thanks! Cette option PyPy est vraiment * très * intéressante - merci. –

3

Il existe de nombreuses raisons mod_wsgi est préféré pour le déploiement d'applications Web Python. L'un est la stabilité, l'autre est la variété des options de configuration ... dont la possibilité de chrooter le démon mod_wsgi (à partir de la version 3.00).

L'option chroot n'est pas encore documentée pour la directive WSGIDaemonProcess à http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess mais il y a suffisamment de documentation dans Changes in Version 3.0.

Vous pouvez également lire un disussion de la fonction à http://code.google.com/p/modwsgi/issues/detail?id=106

+0

@Van Gale - Merci - référence pratique. Nous n'utilisons pas Apache, mais Lighttpd (peut-être Nginx un jour). Y a-t-il une option de configuration équivalente à Lighttpd dont vous êtes au courant (je regarde maintenant aussi)? –

+0

Euh, eh bien si vous utilisez lighttpd vous utilisez probablement aussi flup (... et maintenant vous avez 2 problèmes ... bada boom ...) fastcgi ce qui signifie que vous devriez être en mesure d'avoir votre démarrage fastcgi/init Le script .d fait le chroot comme suggéré par WoLpH (bien que ce soit dans un script shell au lieu de python). –