免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4458 | 回复: 4
打印 上一主题 下一主题

[请教]Apache+Mod_python+Django报错(已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-16 20:35 |只看该作者 |倒序浏览
一个Django project用开发服务器已经可以正常运行,远程访问正常。但是加到apache中远程访问就会报错,请帮忙看看到底是哪里配置错了?谢谢。好几天了,郁闷死。(初学,请原谅):
--------页面报错信息-------------
MOD_PYTHON ERROR

ProcessId:      3803
Interpreter:    'ABC.ABC'

ServerName:     'ABC.ABC'
DocumentRoot:   '/srv/www/htdocs'

URI:            '/'
Location:       '/'
Directory:      None
Filename:       '/srv/www/htdocs/'
PathInfo:       ''

Phase:          'PythonHandler'
Handler:        'django.core.handlers.modpython'

Traceback (most recent call last):

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target
    result = _execute_target(config, req, object, arg)

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target
    result = object(arg)

  File "/usr/lib/python2.5/site-packages/django/core/handlers/modpython.py", line 228, in handler
    return ModPythonHandler()(req)

  File "/usr/lib/python2.5/site-packages/django/core/handlers/modpython.py", line 191, in __call__
    self.load_middleware()

  File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py", line 31, in load_middleware
    for middleware_path in settings.MIDDLEWARE_CLASSES:

  File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 28, in __getattr__
    self._import_settings()

  File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 59, in _import_settings
    self._target = Settings(settings_module)

  File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 94, 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 'abc.settings' (Is it on sys.path? Does it have syntax errors?): No module named abc.settings
--------------------------------------------------------------
/home/admin/django/abc是项目目录,abc是项目名称
--------------------------------------------------------------
/etc/apache2/httpd.conf配置如下:

......
### Add mod_python #################################

LoadModule python_module /usr/lib/apache2/mod_python.so

<Location "/">
   SetHandler python-program
   PythonHandler django.core.handlers.modpython
   SetEnv DJANGO_SETTINGS_MODULE abc.settings
   PythonDebug On
   PythonPath "['/home/admin/django','/home/admin/django/abc','/usr/lib/python2.5/site-packages/django']+sys.path"
</Location>
....

-----------------------
OS: openSuSE 10.3;  Apache 2.2;  Django 1.x

[ 本帖最后由 糊涂得紧 于 2009-2-21 17:25 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-02-17 08:32 |只看该作者
ImportError: Could not import settings 'abc.settings' (Is it on sys.path? Does it have syntax errors?): No module named abc.settings



你的abc.settings 在哪个目录? 貌似apache找不到.

论坛徽章:
0
3 [报告]
发表于 2009-02-17 09:21 |只看该作者
改成这个试试呢
PythonPath "['/home/admin/django','/usr/lib/python2.5/site-packages/django']+sys.path"

论坛徽章:
0
4 [报告]
发表于 2009-02-17 20:02 |只看该作者
原帖由 bohemia 于 2009-2-17 08:32 发表
你的abc.settings 在哪个目录? 貌似apache找不到.


我也觉得是路径问题,可又不知道到底该在哪里改配置。

原帖由 xiaoyu9805119 于 2009-2-17 09:21 发表
改成这个试试呢
PythonPath "['/home/admin/django','/usr/lib/python2.5/site-packages/django']+sys.path"


之前试过了,报错依旧。郁闷!

谢谢二位关注。可惜没分。

论坛徽章:
0
5 [报告]
发表于 2009-02-21 17:37 |只看该作者
问题找到了,是我的Django项目所在目录权限设置有问题。
Apache手册上说了:
“如果配置文件中Listen定义的是默认的80端口(或1024以下),那么启动Apache将需要root权限以将它绑定在特权端口上。一旦服务器开始启动并完成了一些诸如打开日志文件之类的准备操作,它将创建很多子进程来完成一些诸如侦听和回应客户端请求的工作。httpd主进程仍然以root用户的权限运行,而它的子进程将以一个较低权限的用户运行。”
用htop查看系统进程可见:除了Apache主进程的用户是root,Apache的所有子进程用户都是wwwrun,
再查看wwwrun用户仅属于www组。而我现在把Django所在的父目录/home/admin/权限设置成了"750 root:admin",这样wwwrun当然找不到“隐藏”在/home/admin/下面的Django项目文件。
解决的方法:我采用将wwwrun用户加入admin组的方法,这样可以不用改动目录/home/admin/的权限。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP