【发布时间】:2017-03-31 07:44:08
【问题描述】:
我尝试在 CentOS 中将敏感信息设置为环境变量,并将它们传递给主文件中使用的 Flask 配置文件,即 init.py 。但它没有用。 Flask 应用程序在 Apache 下运行。
我首先以 root 用户身份编辑 /etc/environment
MAIL_USERNAME="abcde@abc.com"
然后注销,再次登录 然后通过运行验证 MAIL_USERNAME 是否设置
echo $MAIL_USERNAME
这很好用
在 configuration.py 中,这就是我设置 MAIL_USERNAME 的方式。
MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
出于测试目的, 我打印出 MAIL_USERNAME
in __init__.py
print(MAIL_USERNAME)
然后从终端,如果我运行
python3.4 __init__.py
它打印出正确的 MAIL_USERNAME 值
但是,如果我在网络浏览器上进行测试,MAIL_USERNAME 只是没有设置。它显示无。我通过查看 Apache 日志来验证这一点。
任何关于其工作原理的想法将不胜感激。
谢谢
【问题讨论】:
-
是否有可能在设置环境变量之前就启动了 Apache,所以所有从 Apache 派生的 python 工作人员只能获取启动 Apache 时定义的环境变量?
-
遇到了这个问题,因为我遇到了类似的问题。对我来说,解决方案是重新启动我的终端,以便加载新变量。