Поднимая сайт Django на производственном сервере Linux с использованием Apache с mod_python, я запускаю следующий код для загрузки файла:
from django.conf import settings
import os
# ...
upload_base_dir = "upload"
file_pointer = files['file']
file_path = os.path.join(settings.ROOT_SITE_DIR, upload_base_dir, event_name)
if not os.path.exists(file_path):
os.makedirs(file_path)
file = open(file_path + '/' + file_name, 'wb+')
for chunk in file_pointer.chunks():
file.write(chunk)
file.close()
file_path - это абсолютный путь к файлу. Я сделал небольшую отладку, чтобы найти, что если file_path не существует, os.makedirs () завершается ошибкой (ошибка 500 возвращается запрашивающей стороне). Если путь_файла существует, открыть файл не удастся. Я убедился, что права доступа к каталогу достаточно разрешительны.
Код работает, когда я запускаю сервер разработки Django. Я использовал этот код раньше, и он работает на других сайтах. Я почти уверен, что конфигурация Apache одинакова для соответствующих настроек.
Должно быть простое решение, так что это сводит меня с ума. У кого-нибудь есть указатели на другие вещи, которые я должен проверить? Могу ли я исключить Apache как часть проблемы?