首页 > 解决方案 > 我已经在 apache 服务器中部署了我的 Django 应用程序。所有静态文件都得到正确服务,但它不接受来自表单输入的媒体文件

问题描述

在提交具有媒体输入的表单时,其显示

[Errno 13] Permission denied: '/home/ubuntu/django/media/pictures'

我在谷歌搜索过,但没有人告诉给予媒体文件的权限,他们都只告诉过静态文件。任何人都可以告诉我我必须使用 chmod no 给它哪些权限。

标签: djangopython-3.xapacheubuntu-16.04web-deployment

解决方案


您遇到权限问题。要修复它,您需要允许 Apache 进程访问该文件夹及其内容。

这可以通过以下步骤完成

  1. 更改读写权限

    chmod 664 /home/ubuntu/django/media/pictures -R
    
  2. 授予 Apache 在(www-data 组)组下运行该文件夹及其内容的组所有权

    sudo chown -R :www-data ~/home/ubuntu/django/media/pictures
    
  3. 重启 Apache 服务

    sudo service apache2 restart
    

如果您想确保 Django 的行为正常,您还可以将以下内容添加到您的 settings.py

FILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o755
FILE_UPLOAD_PERMISSIONS = 0o644

推荐阅读