Django在通过uWSGI运行时忽略环境变量

时间:2013-08-28 12:27:18

标签: django uwsgi

我有一个django网站,它使用环境变量DJANGO_MODE来决定使用哪些设置 - 开发或暂存。环境变量在bashrc中,当使用开发服务器运行应用程序时,一切正常。

但是当我使用uWSGI运行应用程序时,它似乎没有注意到环境变量并使用默认(开发)设置而不是生产。

我在Emperor模式下运行uWSGI,除了忽略环境变量之外,一切似乎都运行正常。是的,运行uWSGI的用户与bashrc设置DJANGO_MODE的用户相同。

用于运行uWSGI的命令是 -

exec  uwsgi --emperor /etc/uwsgi/vassals --uid web_user --gid --web_user

附庸的ini文件 -

[uwsgi]
processes = 2
socket = /tmp/uwsgi.sock
wsgi-file = /home/web_user/web/project_dir/project/wsgi.py
chdir = /home/web_user/web/project_dir
virtualenv = /home/web_user/.virtualenvs/production_env
logger = syslog
chmod-socket = 777

1 个答案:

答案 0 :(得分:9)

它无法正常工作,因为bash会读取bash配置文件。你必须在皇帝或附庸中设置var(第二个是更好的方法)。只需添加

env=DJANGO_MODE=foobar

到您的配置(不要使用空格)。

相关问题