尝试为生产和开发使用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并设置环境变量?
使用不同的设置文件似乎很麻烦。
有没有更简单的方法来做这件事呢?(我不想更改wsgi.py文件,因为它是受源代码控制的)
发布于 2013-01-21 19:25:57
使用bash_profile是完全错误的方式。
正确的方法是使用wsgi.py文件。但是,由于您不想这样做(尽管我不明白它与版本控制有什么关系),因此您可以使用SetEnv在您的Apache配置中直接设置环境变量:
SetEnv DJANGO_SETTINGS_MODULE mysite.settings发布于 2013-01-25 20:35:32
好吧,这真的是错误的方式。对不同环境有不同设置的常见方法是将依赖于环境的内容存储在local_settings.py (或其他名称)中,并从settings.py导入
from local_settings.py import *不要将local_settings.py放在项目存储库下,因为每次提交都会覆盖它。如果您想保留本地设置的样本,请将其放入单独的文件中,例如local_settings.py.example
可以在settings.py开头导入本地设置(这样settings.py设置将覆盖本地设置),也可以在结尾导入本地设置,或者在这两种情况下都有两个本地设置文件。
https://stackoverflow.com/questions/14437324
复制相似问题