【问题标题】:Errno 13 Permission denied: '/home/ubuntu/Demo/website/media/image_banner/download.jpg'Errno 13 权限被拒绝:'/home/ubuntu/Demo/website/media/image_banner/download.jpg'
【发布时间】:2021-12-29 07:06:43
【问题描述】:

我使用django框架搭建了一个网站,其中一个是处理admin上传的图片,并保存在media/image_banner的文件夹中,但是遇到错误([Errno 13] Permission denied: '/home /ubuntu/Demo/website/media/image_banner/download.jpg'。我使用 python manage.py runserver 并且它可以工作,但是使用 Apache2 部署时它不起作用。

这是 80 端口文件代码:

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /home/ubuntu/Demo/website

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
    Alias /static /home/ubuntu/Demo/website/static
    <Directory /home/ubuntu/Demo/website/static>
            Require all granted
    </Directory>

    <Directory /home/ubuntu/Demo/website/website>
    <Files wsgi.py>
            Require all granted
    </Files>
    </Directory>
    WSGIPassAuthorization On
    WSGIDaemonProcess website python-path=/home/ubuntu/Demo/website python-home=/home/ubuntu/Demo/demo_env
    WSGIProcessGroup website
    WSGIScriptAlias / /home/ubuntu/Demo/website/website/wsgi.py

【问题讨论】:

  • 您需要使该目录对其他用户可写,您是否使用sudo执行了一些命令?

标签: django apache2


【解决方案1】:

这是由于缺少权限造成的。您应该给予适当的读写权限/home/ubuntu/Demo/website

sudo chmod 777 /home/ubuntu/Demo/website -R

此命令将授予 website 目录的所有权限(读取、写入、执行),包括 website 目录内的所有目录和文件。但是对于生产,您需要更改安全问题的权限。

【讨论】:

  • 另一个错误显示:- /register/ 'WSGIRequest' 对象的 AttributeError 没有属性 'is_ajax'
  • 似乎这个错误来自您的观点。你使用 request.is_ajax 或类似的东西吗?
猜你喜欢
  • 2021-01-17
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
  • 2014-03-14
  • 2018-03-09
  • 2017-04-20
  • 2011-06-11
  • 2014-07-15
相关资源
最近更新 更多