Django call_command权限nginx + gunicorn + supervisord

时间:2015-03-27 14:16:09

标签: django

我已安装此https://github.com/andybak/django-backup

App只提供backup管理命令

我做什么:

1。 $ python manage.py backup

一切都很好。备份已创建!

2。 $ python manage.py shell

from django.core.management import call_command
call_command('backup')

一切都很好。备份已创建!

3。我创建了视图:

from django.core.management import call_command

def backup(request): # /admin/backup/
    call_command('backup')
    return redirect(request.META.get('HTTP_REFERER'))

4。 $ python manage.py runserver 0.0.0.0:9999

转到浏览器 mywebsite.com:9999/admin/backup /

一切都很好。备份已创建!

5. 但是当我通过nginx + gunicorn + supervisord运行我的网站并转到浏览器 mywebsite.com/admin/backup / 时 - 备份文件为空。< / p>

也许这完全取决于权限?请帮忙。

Django 1.7


修改

6。 /var/env/project/bin/gunicorn core.wsgi -b 0.0.0.0:9999 --user=root --group=root并转到浏览器 mywebsite.com:9999/admin/backup /

一切都很好。备份已创建!


/etc/supervisord.conf:

[program:project]
command=/var/env/project/bin/gunicorn core.wsgi -b 0.0.0.0:8000 --user=root --group=root
directory=/var/www/project/
environment=PATH="/var/env/project/bin/activate",DJANGO_SETTINGS_MODULE="core.settings_prod"
user=root
autostart=true
autorestart=true
redirect_stderr=true

1 个答案:

答案 0 :(得分:0)

知道了! supervisord.conf environment=PATH=中的错误应该是environment=PYTHONPATH=

environment=PYTHONPATH="/var/env/project/bin/activate",DJANGO_SETTINGS_MODULE="core.settings_prod"