7
我有一个django网站,它使用环境变量DJANGO_MODE
来决定使用哪些设置 - 开发或分段。环境变量在bashrc
中,当使用开发服务器运行应用程序时,一切正常。Django在通过uWSGI运行时忽略环境变量
但是,当我运行应用程序使用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
我试过在附件中加入,没有工作。 – elssar
添加一些打印以检查在os.environ中是否有DJANGO_MODE,也许还有其他类型的问题。考虑到DJANGO_SETTINGS_MODULE设置在一开始,所以检查必须发生在wsgi.py – roberto
Doh!我在env中设置了空格 - env = DJANGO_MODE = mode',这导致了问题。 – elssar