2010-08-11 55 views
1

这是一个apache/mod_wsgi/virtualenv/django堆栈。在virtualenv site-packages目录中,我有一个virtualenv_path_extensions.pth文件。在Apache的conf有site.addsitedir未完全处理.pth文件

WSGIScriptAlias//path/to/my.wsgi 

my.wsgi有

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

现在,如果我启动了一个Python外壳,进口的网站,并拨打上面的线,我的sys.path看起来是正确的:它已加载virtualenv_path_extensions.pth中的所有路径

但是,在Apache下我得到500错误,因为它声称Django不在路径上。当我将sys.path记录在my.wsgi中的addsitedir行之后时,它看起来好像添加了virtualenv_path_extensions.pth的第一行,但其余部分没有!

什么可能导致这种情况?

回答

1

啊,SELinux的:d

这并没有获得加载了错误的情况下,和Apache无法触及这些目标的路径...

**必须记住要检查这些日志的SELinux当出现奥秘**

+0

从内存中,即使不使用SELinux也会发生这种情况。基本上,如果其他目录不可读,则site.addsitedir()不会添加它们。因此,即使不使用SELinux,也需要确保目录对Apache用户可读。 – 2010-08-11 23:44:05