尝试使用2个不同的设置文件进行制作和开发。
我设置了DJANGO_SETTINGS_MODULE ='mysite.settings_production'
使用runserver
当我用apache运行它时,apache似乎没有使用~/.bash_profile
中的设置而是在wsgi.py文件中使用os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
我想这可能是因为apache在不同的用户上运行,而不是我的... 好吧..所以它似乎在我的ec2 ubuntu上作为www-data运行。
所以我必须创建/home/www-data/.bash_profile并设置env变量?
使用不同的设置文件似乎很麻烦 有一个明显更容易的方法吗? (我不想更改wsgi.py文件,因为它是源控制的)
答案 0 :(得分:0)
使用bash_profile完全是错误的方法。
正确的方法是使用wsgi.py文件。但是,由于您不想这样做(虽然我不明白版本控制的内容与任何内容有什么关系),但您可以使用SetEnv直接在Apache配置中设置环境变量:
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
答案 1 :(得分:0)
嗯,这是非常错误的方式。为不同环境设置单独设置的常用方法是将环境依赖存储在local_settings.py(或您设置的任何名称)中,并从settings.py
进行存储。from local_settings.py import *
不要将local_settings.py放在项目存储库下,因为您将在每次提交时覆盖它。如果您想保留本地设置的样本,请将其放入单独的文件中,例如local_settings.py.example
您可以在settings.py开头导入本地设置(因此settings.py设置将覆盖本地设置),或者最后导入本地设置,或者在两种情况下都有两个本地设置文件。