2010-08-11 11 views
1

Il s'agit d'une pile apache/mod_wsgi/virtualenv/django. Dans le répertoire virtualenv site-packages, j'ai un fichier virtualenv_path_extensions.pth. Le apache a conf unsite.addsitedir ne traite pas complètement le fichier .pth

WSGIScriptAlias//path/to/my.wsgi 

my.wsgi a

site.addsitedir('/path/to/virtualenv/site-packages') 

Maintenant, si je commence un shell python, le site d'importation, et appelle la ligne ci-dessus, mon sys.path semble correct: il a chargé tous les chemins dans le virtualenv_path_extensions.pth

Cependant, sous Apache je reçois 500 erreurs car il prétend que django n'est pas sur le chemin. Lorsque je connecte sys.path après la ligne addsitedir dans my.wsgi, il semble que la première ligne de virtualenv_path_extensions.pth ait été ajoutée, mais pas le reste!

Ce qui pourrait causer cela?

Répondre

1

Ah, SELinux: D

Les chemins qui ne sont pas chargés se a eu le mauvais contexte et apache n'a pas été en mesure de les toucher ...

** doit se rappeler de vérifier les journaux SELinux quand des mystères surviennent **

+0

De la mémoire cela peut se produire même si SELinux n'est pas utilisé. Fondamentalement, si les répertoires supplémentaires ne sont pas lisibles, alors site.addsitedir() ne les ajoutera pas. Il faut donc s'assurer que les répertoires sont lisibles par l'utilisateur Apache même si SELinux n'est pas utilisé. –