我用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
答案 0 :(得分:1)
您已将MEDIA_ROOT
设置为网址。我认为它应该设置为物理位置,我认为同样适用于ADMIN_MEDIA_PREFIX
。我会尝试改变
MEDIA_ROOT = '/Projects/my_project/media/' # assuming linux
和
ADMIN_MEDIA_PREFIX = PROJECT_URL + '/media/admin'
您还必须设置媒体文件夹的权限。我认为您需要授予www-data
写入权限。