我的Ubuntu服务器上有一个Django (v1.11.6)
应用Python 3.5 (not using virtualenv)
。
但是,我想在mod_wsgi中为Django设置环境变量。
由于我未使用virtualenv
,因此我在/etc/apache2/envvar
中进行了设置。但是apache2
服务无法获得它们。
在settings.py中我有SECRET_KEY = get_env_variable("GA_SECRET_KEY")
但是apache引发了以下错误:
[Mon Oct 23 14:03:29.180611 2017] [wsgi:error] [pid 30062] [client 194.42.16.145:13576] SECRET_KEY = os.environ("GA_SECRET_KEY")
[Mon Oct 23 14:03:29.180630 2017] [wsgi:error] [pid 30062] [client 194.42.16.145:13576] TypeError: '_Environ' object is not callable
你知道如何解决这个问题吗?
答案 0 :(得分:0)
我必须在apache2.conf
文件中设置environent变量,如:
SetEnv SECRET_KEY '123456778877'
然后在wsgi.py
文件中有以下代码:
来自django.core.wsgi导入get_wsgi_application
_application = get_wsgi_application()
def application(environ, start_response):
# pass the WSGI environment variables on through to os.environ
os.environ['SECRET_KEY'] = environ['GA_SECRET_KEY']
return _application(environ, start_response)
然后在settings.py
文件中有:
SECRET_KEY = os.environ[SECRET_KEY]