2017-10-23 1 views
-1

Ich habe eine Django (v1.11.6) App auf meinem Ubuntu-Server mit Python 3.5 (not using virtualenv).django: Einstellung von Umgebungsvariablen in/etc/apache2/envvar funktioniert nicht

Allerdings möchte ich Umgebungsvariablen in mod_wsgi für Django setzen.

Da ich nicht virtualenv verwende, stelle ich dann in /etc/apache2/envvar. Aber apache2 Service kann sie nicht bekommen.

In settings.py Ich habe SECRET_KEY = get_env_variable("GA_SECRET_KEY") aber Apache wirft die folgende Fehlermeldung:

[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 

Wissen Sie, wie dieses Problem beheben?

Antwort

0

Ich habe die environent Variablen in apache2.conf Datei setzen wie:

SetEnv SECRET_KEY '123456778877' 

Und dann in wsgi.py-Datei den folgenden Code:

von django.core.wsgi Import 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) 

Und dann in settings.py Datei haben:

SECRET_KEY = os.environ[SECRET_KEY] 
Verwandte Themen