2010-03-30 37 views
1

我的项目位于:/ home/projects/testing,我将它添加到Centos机器上的/etc/httpd/conf/httpd.conf文件的buttom中,但那是不工作,apache虚拟主机与django一起工作

<Location "/testing/"> 
    SetHandler python-program 
    PythonHandler django.core.handlers.modpython 
    SetEnv DJANGO_SETTINGS_MODULE testing.settings 
    PythonOption django.root /testing 
    PythonDebug On 
    PythonPath "['/home/projects/'] + sys.path" 
</Location> 

但请求http://localhost/testing/jobs例如当,我得到:

 
Mod_python error: "PythonHandler django.core.handlers.modpython" 

Traceback (most recent call last): 

    File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 299, in HandlerDispatch 
    result = object(req) 

............. 

File "/usr/lib/python2.4/site-packages/Django-1.1.1-py2.4.egg/django/conf/__init__.py", line 75, in __init__ 
    raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e) 

ImportError: Could not import settings 'testing.settings' (Is it on sys.path? Does it have syntax errors?): No module named testing.settings 

回答

3

你想同时,该项目的文件夹,并在您的PYTHONPATH测试文件夹,因为您的项目使用的路径没有“测试“中:

PythonPath "['/home/projects/', '/home/projects/testing/'] + sys.path" 
+0

根据指示更新了PythonPath,并直接在项目内的设置文件上进行设置。仍然没有运气。 – khelll 2010-03-30 13:01:11

+0

@reko_t:回溯说“导入错误”,“没有名为testing.settings的模块”。假设文件'/ home/projects/testing/__ init __。py'和'/ home/projects/testing/settings.py'存在,路径上的'/ home/projects'就足够了。这就是为什么我会说它更可能是mod_python无法读取这些文件,而不是找不到它们。 – MattH 2010-03-30 13:10:32

+1

如果'/ home/projects/testing/__ init __。py'不存在,那么导入'testing.settings'将失败。我建议让你的Python路径为@reko_t建议,但是使用:'SetEnv DJANGO_SETTINGS_MODULE settings'。这应该工作天气'__init __。py'存在与否。 – 2010-03-30 16:47:49

0

该路径对我来说看起来不错,我只是再次检查sys.path中的项目是否与尾部斜线配合使用。

我认为,这是文件权限问题:

  • 是否用户的apache运行下可以访问项目文件?
  • selinux是否阻止访问?
+0

使权限777的文件夹,我也使用Centos,没有selinux AFAIK。仍然没有运气。 – khelll 2010-03-30 13:06:35

+0

我对Centos没有任何接触,但是这个文档的存在http://www.centos.org/docs/5/html/5.1/Deployment_Guide/rhlcommon-chapter-0017.html会让我相信Centos本质上并不缺乏selinux。 – MattH 2010-03-30 13:15:12