Django 在 Apache2 提供服务时创建文件夹的权限

Django permission to create a folder when being served by Apache2

我在 Debian 8 机器上使用 Apache2 和 mod_wgsi 为 Django 站点提供服务。

我已经正确设置了访问数据库和静态文件目录以及目录 my_site/media.

的权限

但是,站点需要在 my_site/media 中创建一个目录(即 my_site/media/another_directory),我似乎无法授予 apache2 执行此操作的权限。

媒体权限为:

drwxrwxrwx 2 scamp www-data   4096 Jan 10 03:09 media

我得到的 Django 错误是

Exception Type: PermissionError
Exception Value:    
[Errno 13] Permission denied: 'media/new_folder'

这是我的 django.conf:

Alias /robots.txt /home/scamp/trcalc_django/static/robots.txt
Alias /favicon.ico /home/scamp/trcalc_django/static/favicon.ico
Alias /media/ /home/scamp/trcalc_django/media/
Alias /static /home/scamp/trcalc_django/static
<Directory /home/scamp/trcalc_django/static>
Require all granted
</Directory>
<Directory /home/scamp/trcalc_django/media>
Require all granted
</Directory>
WSGIScriptAlias / /home/scamp/trcalc_django/wsgi.py
<Directory /home/scamp/trcalc_django>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

我还需要在 apache conf 中添加其他内容吗?或者其他一些需要设置的权限?

不要使用文件的相对路径。您必须计算绝对路径。这是因为进程的当前工作目录不会成为您的项目所在的位置。有关详细信息,请参阅 mod_wsgi 文档。