我的项目基于Django,Nginx,Gunicorn和虚拟环境中的主管。
我在./bin/activate
脚本的末尾导出环境变量。每当我source
激活文件时,它都会导出环境变量。这很酷......
当我启动Supervisor脚本时,我的问题出现了。似乎./bin/activate
不是来源的,因为Django无法获得像SECRET_KEY这样的变种。
我听说人们使用了一个后激活脚本,这个脚本在我的virtualenv bin目录中没有。我错过了重要的事吗?为什么Supervisor不会提供./bin/activate
脚本?
这是我的主管conf:
command=/opt/.virtualenvs/plcweb/bin/gunicorn plcweb.config.wsgi -c /opt/plcweb/gunicorn.conf.py
directory=/opt/plcweb/project
user=bastien
autostart=true
autorestart=true
redirect_stderr=True
stdout_logfile=/opt/plcweb/gunicorn.log
stderr_logfile=/opt/plcweb/gunicorn.log
答案 0 :(得分:1)
正如here所解释的那样,你有一个非常简单的environment
指令解决方案。因此,要导出DJANGO_SETTINGS_MODULE,主管conf文件应如下所示:
command=/opt/.virtualenvs/plcweb/bin/gunicorn plcweb.config.wsgi -c /opt/plcweb/gunicorn.conf.py
environment=DJANGO_SETTINGS_MODULE=my_project.settings.production
directory=/opt/plcweb/project
user=bastien