代码之家  ›  专栏  ›  技术社区  ›  bouvard

基于闪存的文件上传(swfupload)失败,apache/mod wsgi

  •  0
  • bouvard  · 技术社区  · 15 年前

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


    我正在尝试将项目从Django开发服务器迁移到Apache/mod wsgi环境。如果你昨天问我,我会说过渡非常顺利。我的网站是开放的、可访问的、快速的,等等。但是,网站的一部分依赖于文件上传,因此我遇到了最奇怪和最令人恼火的问题。所讨论的特定页面使用 swfupload 将一个文件和相关的元数据发布到一个URL,该URL捕获该文件并启动一些服务器端处理。这在开发服务器上非常有效,但是每当我在Apache上发布这个URL时,django请求对象都是空的。-- 没有获取、发布或文件数据 .

    我通过监听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错误日志并没有建议任何此类问题,即使在调试时提高了日志级别。

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

    2 回复  |  直到 15 年前
        1
  •  2
  •   Mapio    15 年前

    另一种可能是mod wsgi“旧”版本中的一个bug(我疯狂地发现并修复它)。更多信息 bug report . 我修复了它(用于curl上传),因为 following hint (使用-h开关,这也适用于CLI)。

        2
  •  3
  •   Todd Gardner    15 年前

    通常,Apache以用户“www-data”的身份运行;如果它没有读/写访问权,则可能会出现问题。但是,您的安装程序似乎没有使用apache访问“/home/sk/src/sitename/uploads”;我对这个配置文件的理解是,除非它命中/static或/media,否则apache将把它从wgsi中分发出去,因此检查这些权限和日志,而不是apache的权限和日志可能会更好。