Apache上具有Nginx写入权限的Django

Apache上具有Nginx写入权限的Django,django,apache,nginx,Django,Apache,Nginx,我已经用Apache2+mod_wsgi设置了Django。静态文件由Nginx提供。Apache在端口81上运行,nginx在端口80上运行 我的设置如下: 媒体http://localhost/media/' 管理员\u媒体\u前缀=http://localhost/media/" 一切看起来都很好。在这里,我可以看到Django管理站点及其静态文件 我使用此型号创建了一个新应用程序: 课堂歌曲(models.Model): song=models.FileField(上传到='songs'

我已经用Apache2+mod_wsgi设置了Django。静态文件由Nginx提供。Apache在端口81上运行,nginx在端口80上运行

我的设置如下: 媒体http://localhost/media/' 管理员\u媒体\u前缀=http://localhost/media/"

一切看起来都很好。在这里,我可以看到Django管理站点及其静态文件

我使用此型号创建了一个新应用程序: 课堂歌曲(models.Model): song=models.FileField(上传到='songs')

当我试图上传一个文件在管理网站我得到以下错误

OSError位于/admin/player/song/add/

[Errno 13]权限被拒绝:'/http:'

申请方式:邮寄 请求URL: Django版本:1.3.1 异常类型:OSError 异常值:


如何允许apache将更改应用到nginx

您已将
媒体根目录设置为url。我认为应该将其设置为物理位置,我认为
ADMIN\u MEDIA\u前缀也应该设置为物理位置。我会尝试改变

MEDIA_ROOT = '/Projects/my_project/media/'  # assuming linux


您还必须设置媒体文件夹的权限。我认为您需要授予
www-data
写入权限。

它起作用了。非常感谢。问题实际上是媒体的根源(愚蠢的努布错误)。我将MEDIA_ROOT更改为绝对路径,并更改了stettup。Nginx现在充当reverseproxy,因此我的ADMIN\u MEDIA\u前缀只是/MEDIA/而不是localhost/MEDIA。这似乎更灵活、更普遍。很高兴它有所帮助。请在答案上打勾,以表明答案已解决。
ADMIN_MEDIA_PREFIX = PROJECT_URL + '/media/admin'