Apache, mod_wsgi, Django 和 Python 用户代理
我在用Python写的用户代理上遇到了问题,现在我想把它用在一个已经安装了Apache、mod_wsgi(用于Python)和Django的Bitnami亚马逊云服务上。当我尝试从Python用户代理向Django网站发送数据时,出现了问题。
比如说,当我用以下方式组装一个URL时:
rq = urllib2.Request('http://' + IP_ADDRESS + '/power/command/')
r = urllib2.urlopen(rq)
return r.read()
这个GET请求没有问题。但是当我用下面的方式组装一个URL,并尝试用它发送数据时:
params = urlencode({'u': json.write(obj)})
rq = urllib2.Request('http://' + IP_ADDRESS + '/power/command/update/', params)
r = urllib2.urlopen(rq)
ret_val = r.read()
我收到了404错误。如果我简单地从请求构造器中去掉参数,我就会收到500错误——这大致是合适的。
这两段代码在Django自带的调试服务器('./manage.py runserver')上运行得很好。有没有人对这个问题有什么想法,或者说说怎么调试一下?
我已经尝试过伪装'User-agent',但这似乎不太可能,因为第一次的GET请求是成功的。Apache的httpd.conf文件看起来很普通,除了mod_wsgi的引用。我之前在本地开发服务器上让它正常工作过,但现在找不到区别。我相信这是配置的问题,因为代码在开发环境和调试服务器上都能正常工作。
1 个回答
0
首先,检查一下你的Apache访问日志和错误日志,看看有没有什么异常的地方:
如何调试错误?
当Apache启动后,它会在/安装目录/apache2/logs文件夹里创建两个日志文件,分别是access_log和error_log。你可以查看这些文件,以找到应用程序中的具体错误。
来源: http://wiki.bitnami.org/Components/Apache#How_to_debug_errors.3f