9

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

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

uWSGI在皇帝模式下运行,除了忽略环境变量之外,一切似乎都运行良好。是的,运行的用户与已设置的用户uWSGI相同。bashrcDJANGO_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
4

1 回答 1

16

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

env=DJANGO_MODE=foobar

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

于 2013-08-28T14:35:30.580 回答