gpt4 book ai didi

django - Errno 13 权限被拒绝 : media file in Django

转载 作者:行者123 更新时间:2023-12-04 19:29:31 24 4
gpt4 key购买 nike

我正在尝试将文件写入 django 媒体文件夹,但在执行时出现权限被拒绝错误。该配置在 OSX 开发平台上运行良好,但在 Ubuntu 测试服务器上却不行。
我有以下配置:
设置.py

    
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
print('SETTINGS CWD = ', os.getcwd())
models.py 方法:
    def template_to_file(self):
print('MODELS CWD = ', os.getcwd())
with open(path + '/newsletter-volume-1.html', 'w') as static_file:
static_file.write('Hello')

def save(self, *args, **kwargs):
self.template_to_file()
super(Newsletter, self).save(*args, **kwargs)
在 OSX 开发平台上,文件写入媒体文件夹和当前工作目录打印如下:
设置 CWD =/Users/tb/Documents/dev/backoffice
模型 CWD =/Users/tb/Documents/dev/backoffice
但是,在 Ubuntu 平台上,我得到:
[Errno 13] 权限被拒绝:'/home/admin/backoffice/media/newsletter-volume-1.html'
设置 CWD =/home/admin/backoffice
型号 CWD =/
以下权限设置如下(admin是Django的所有者):
drwxrwxr-x 9 admin admin 4096 Jun 19 09:05 .
drwxr-xr-x 7 admin admin 4096 Jun 19 06:02 ..
drwxrwxr-x 2 admin admin 4096 Jun 19 06:07 media

admin@ubuntu:~/backoffice$ ps aux | grep django
admin 12606 0.4 6.6 82028 62280 ? S 09:05 0:25 /home/admin/backoffice/venv/bin/python /home/admin/backoffice/venv/bin/celery -A backoffice beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler
admin 18686 0.0 0.0 7692 684 pts/0 S+ 10:35 0:00 grep --color=auto django
Apache 通过 WSGI 运行 Django
sudo ps aux | grep apache
[sudo] password for admin:
root 13921 0.0 0.5 14188 4924 ? Ss 09:24 0:00 /usr/sbin/apache2 -k start
www-data 13922 0.1 6.6 407752 61752 ? Sl 09:24 0:06 /usr/sbin/apache2 -k start
www-data 13923 0.0 1.2 2008496 12072 ? Sl 09:24 0:00 /usr/sbin/apache2 -k start
www-data 13924 0.0 1.2 2008480 11844 ? Sl 09:24 0:00 /usr/sbin/apache2 -k start
admin 20310 0.0 0.0 7692 684 pts/0 S+ 10:58 0:00 grep --color=auto apache
我已经在 Ubuntu 测试服务器上的 shell 中尝试过这个,它工作正常。
有没有人对此有解决方案并解释为什么当前工作目录在 Ubuntu 服务器上更改为“/”?

最佳答案

权限被拒绝是公平的,因为您通过 root 创建文件并由 Apache 提供服务,只需使用 chown 将所有权授予“www-data”即可

关于django - Errno 13 权限被拒绝 : media file in Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68045514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com