Heim  >  Fragen und Antworten  >  Hauptteil

django – Problem beim Lesen von Umgebungsvariablen, wenn Apache die Konfigurationsdatei lädt

Mein Projekt wird mit Django + Apache bereitgestellt, um einfach zwischen Online- und Entwicklungsumgebungen zu unterscheiden, habe ich eine Umgebungsvariable auf dem Server festgelegt Z_ENV und diese dann in die Django-Konfigurationsdatei geschrieben

env = os.environ.get("Z_ENV", None)
if env == "server":
    from .server_settings import *
else:
    from .local_settings import *

Diese Schreibweise ist kein Problem, wenn einige der mit Django gelieferten Befehle lokal oder auf dem Server verwendet werden. Wenn os.environ.get("Z_ENV", None)就是server或者python managa.py syncdb,确实是使用的server_settings里面的配置,但是在apache载入配置文件的时候却没有获取到这个环境变量,然后就使用了local_settings,我是在上面加了一句print env的,然后service apache2 restart beispielsweise direkt ausgeführt wird, wird „None“ in der Apache-Protokolldatei gedruckt.

Die Änderung der Umgebungsvariablen ist /etc/profile文件,内容是Z_ENV=server export Z_ENVZuerst war sie für Apache-Benutzer nicht wirksam, aber später habe ich überprüft und festgestellt, dass die hier festgelegten Umgebungsvariablen für alle Benutzer wirksam sind.

Lasst uns alle fragen, was los ist?

天蓬老师天蓬老师2713 Tage vor543

Antworte allen(1)Ich werde antworten

  • 迷茫

    迷茫2017-05-16 17:05:31

    /etc/apache2/envvars 中设置 export Z_ENV=server

    Antwort
    0
  • StornierenAntwort