Flash-загрузка файлов (swfupload) завершается неудачно с помощью Apache / mod-wsgi - PullRequest
0 голосов
/ 03 июня 2009

Этот вопрос был переименован / перемаркирован, чтобы другим было легче найти решение этой проблемы.


Я пытаюсь перенести проект с сервера разработки Django в среду Apache / mod-wsgi. Если бы вы спросили меня вчера, я бы сказал, что переход проходит очень гладко. Мой сайт работает, доступен, быстрый и т. Д. Однако часть сайта зависит от загрузки файлов, и с этим я сталкиваюсь с самой странной и самой невыносимой проблемой. На конкретной рассматриваемой странице swfupload используется для POST-файла и связанных метаданных с URL-адресом, который перехватывает файл и инициирует некоторую обработку на стороне сервера. Это прекрасно работает на сервере разработки, но всякий раз, когда я отправляю POST по этому URL на Apache, объект запроса 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 не предлагает ничего подобного, даже с повышенным уровнем журнала для отладки.

Предложения о том, как мне отладить это?

Ответы [ 2 ]

3 голосов
/ 03 июня 2009

Обычно apache запускается как пользователь "www-data"; и у вас могут возникнуть проблемы, если у него нет прав на чтение / запись. Однако, похоже, что ваша установка не использует apache для доступа к / home / sk / src / sitename / uploads; Насколько я понимаю из этого файла конфигурации, если только он не нажал / static или / media, apache передаст его WGSI, так что было бы неплохо проверить эти разрешения и журналы, а не apache.

2 голосов
/ 03 июня 2009

Другая возможность - ошибка в "старых" выпусках mod_wsgi (я с ума сошел, чтобы найти и исправить это). Больше информации в этом сообщении об ошибке . Я исправил это (для загрузки с помощью curl) благодаря следующей подсказке (которая работает и на CLI, используя ключ -H).

...