0

此问题已重新命名/重新标记,以便其他人可以更轻松地找到此问题的解决方案。


我正在尝试将项目从 Django 开发服务器迁移到 Apache/mod-wsgi 环境。如果你昨天问我,我会说过渡非常顺利。我的网站已启动、可访问、快速等。但是,该网站的一部分依赖于文件上传,因此我遇到了最奇怪和最令人抓狂的问题。有问题的特定页面使用swfupload将文件和关联的元数据发布到捕获文件并启动一些服务器端处理的 url。这在开发服务器上工作得很好,但是每当我在 Apache 上发布到这个 url 时,Django 请求对象就会变成空的——没有 GET、POST 或 FILES 数据

通过使用 Wireshark 进行侦听,我消除了客户端问题。据我所知,根本原因源于某种 Apache 配置问题,可能与我试图访问的临时文件目录有关。我是 Apache 配置的相对新手,并且已经为此努力了好几个小时。

我的 Apache 配置:

<VirtualHost *:80>
ServerAdmin user@sitename.com
ServerName  sitename.com
ServerAlias www.sitename.com
LogLevel warn
WSGIDaemonProcess sitename processes=2 maximum-requests=500 threads=1
WSGIProcessGroup sitename
WSGIScriptAlias / /home/user/src/sitename/apache/django.wsgi
Alias /static /home/user/src/sitename/static
Alias /media /usr/share/python-support/python-django/django/contrib/admin/media
</VirtualHost>

我的直觉是,这可能与我在 Django settings.py ( '/home/sk/src/sitename/uploads/') 中指定的文件上传目录的权限有关,但是我的 Apache 错误日志并没有提出任何类似的建议,即使日志级别被提升最多调试。

关于我应该如何进行调试的建议?

4

2 回答 2

3

通常 apache 作为用户“www-data”运行;如果它没有读/写访问权限,您可能会遇到问题。但是,您的设置似乎没有使用 apache 来访问“/home/sk/src/sitename/uploads”;我对此配置文件的理解是,除非它命中 /static 或 /media,否则 apache 会将其交给 WGSI,因此最好检查这些权限和日志,而不是 apache 的。

于 2009-06-03T04:54:55.453 回答
2

另一种可能性是 mod_wsgi 的“旧”版本中的一个错误(我疯狂地寻找并修复它)。此错误报告中的更多信息。由于以下提示(也适用于 CLI,使用 -H 开关),我修复了它(用于 curl 上传)。

于 2009-06-03T07:18:33.877 回答