Django在Apache上使用Nginx编写权限

时间:2012-02-15 04:27:17

标签: django apache nginx

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

我的设置是这样的:     MEDIA_ROOT ='http:// localhost / media /'     ADMIN_MEDIA_PREFIX ='http:// localhost / media /'

一切都很好看。在https://localhost:81/admin我可以看到Django管理站点及其静态文件。

我使用此模型创建了一个新应用:     class Song(models.Model):     song = models.FileField(upload_to ='songs')

当我尝试通过管理网站上传文件时,我收到以下错误。

/ admin / player / song / add /

中的OSError

[Errno 13]许可被拒绝:'/ http:'

请求方法:POST 请求网址:http://localhost:81/admin/player/song/add/ Django版本:1.3.1 异常类型:OSError 例外值:

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

1 个答案:

答案 0 :(得分:1)

您已将MEDIA_ROOT设置为网址。我认为它应该设置为物理位置,我认为同样适用于ADMIN_MEDIA_PREFIX。我会尝试改变

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

ADMIN_MEDIA_PREFIX = PROJECT_URL + '/media/admin'

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