【问题标题】:Upload file in Django and nginx with jquery file upload使用 jquery 文件上传在 Django 和 nginx 中上传文件
【发布时间】:2013-10-09 15:40:18
【问题描述】:

我在 Django 中使用 jquery 文件上传,它在命令中运行良好:

python manage.py runserver

但是当我使用 nginx 和 fastcgi 配置这个运行时,我得到了一个错误:

[Errno 13] Permission denied

这是我在 nginx 中的配置:

server {
listen 80;
server_name mysite.local;
access_log /var/log/nginx/mysite.access.log;
error_log /var/log/nginx/mysite.error.log;
client_max_body_size 50M;

location /static/ { # STATIC_URL
    alias /home/username/workspace/python_env/myprojectname/assets/;
    #expires 30d;
}

location /media/ { # MEDIA_URL
    alias /home/username/workspace/python_env/myprojectname/media/;
    #expires 30d;
}

location / {
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:8080;
    fastcgi_split_path_info ^()(.*)$;
}

}

我正在上传图片和另一个文件到文件夹:

"/assets/uploads/"

我是 Python Django 和 Nginx 的新手,所以我希望有人可以帮助我一些优势方向。感谢您阅读我的帖子!

【问题讨论】:

    标签: jquery django nginx


    【解决方案1】:

    首先,使用以下命令启动 django 进程:

    python manage.py runserver
    

    不推荐。请参阅 (https://docs.djangoproject.com/en/dev/ref/django-admin/)。相反,您想使用以下方式开始该过程:

    python manage.py runfcgi host=127.0.0.1 port=8080 --settings=settings
    

    这将启动一个 fastcgi 进程,nginx 可以将请求传递给该进程。

    其次,你要确保上面的进程对assets/uploads有读写权限

    希望能有所帮助。

    【讨论】:

    • 感谢 Matthew Brown 的指导!我将检查此过程的权限并尽快发布结果。
    • 没问题。让我知道进展如何:)
    • 即使我使用以下命令更改权限:sudo chown a+w username:www-data 我的文件夹,我仍然收到错误权限被拒绝。我来宾我可以把我的文件夹放到另一个不在 /home/ 下的文件夹
    • 您的 MEDIA_ROOT 是否设置为 /home/username/workspace/python_env/myprojectname/media/ 和 MEDIA_URL 设置为 mysite.local/media
    • 是的,我设置的 media_url 和你上面写的完全一样,Matthew Brown。我的意思是在我的项目中的 settings.py 中。在 nginx conf 中,我将别名设置为相同。你有什么理想的我的设置。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 2017-11-18
    • 2012-04-25
    • 2013-03-26
    • 2014-01-16
    • 2011-11-01
    • 2014-08-15
    相关资源
    最近更新 更多