5

我像这样设置 django setting.py:

import os
from django.core.exceptions import ImproperlyConfigured
def get_env_variable(var_name):
    try:
        return os.environ[var_name]
    except KeyError:
        error_msg = "Set the %s environment variable" % var_name
        raise ImproperlyConfigured(error_msg)

环境变量配置正确。使用 django 内置 Web 服务器时,一切正常。但是使用 apache 和 wsgi,它引发了一个 KeyError。

根据Cannot get environment variables in Django settings file,问题解决。但是为什么apache不能获取系统环境变量呢?

更新:环境变量在 .bashrc 中设置。

4

2 回答 2

7

你说“环境变量是在 .bashrc 中设置的”。大概你的意思是你的.bashrc。这是没有意义的,因为 Apache 不是以您的身份运行,而是以 Apache 用户的身份运行。

正如您链接到的问题中引用的博客文章中所解释的那样,您需要通过SetEnv指令在 Apache 配置文件本身中设置环境变量。

于 2013-05-28T13:29:52.117 回答
0

您在 settings.py 中设置的任何环境都将仅应用于该实例的环境变量,它们不会更改将称为 apache 的系统环境变量。

于 2013-05-28T13:14:23.090 回答