首頁  >  問答  >  主體

django - apache載入設定檔的時候讀取環境變數的問題

我的專案是使用django + apache部署的,為了方便的區分線上和開發環境,我在伺服器上設定了一個環境變數Z_ENV,然後在Django的設定檔中是這樣寫的,

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

這樣的寫法在本地和在伺服器上使用Django自帶的某些指令都是沒問題的,例如直接執行os.environ.get("Z_ENV", None)就是 serverpython managa.py syncdb,確實是使用的server_settings裡面的配置,但是在apache載入設定檔的時候卻沒有取得到這個環境變量,然後就使用了local_settings,我是在上面加了一句print env的,然後service apache2 restart的時候在apache的日誌檔案中就是列印的None 。

環境變數修改的是/etc/profile文件,內容是Z_ENV=server export Z_ENV一開始我是對apache的使用者不生效的呢,但後來查了查,這個地方設定的環境變數是所有的使用者生效的。

來請教大家,看看是怎麼回事?

天蓬老师天蓬老师2713 天前540

全部回覆(1)我來回復

  • 迷茫

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

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

    回覆
    0
  • 取消回覆