首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >部署django站点(wsgi)

部署django站点(wsgi)
EN

Stack Overflow用户
提问于 2013-01-21 19:10:21
回答 2查看 117关注 0票数 0

尝试为生产和开发使用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文件,因为它是受源代码控制的)

EN

回答 2

Stack Overflow用户

发布于 2013-01-21 19:25:57

使用bash_profile是完全错误的方式。

正确的方法是使用wsgi.py文件。但是,由于您不想这样做(尽管我不明白它与版本控制有什么关系),因此您可以使用SetEnv在您的Apache配置中直接设置环境变量:

代码语言:javascript
运行
复制
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
票数 0
EN

Stack Overflow用户

发布于 2013-01-25 20:35:32

好吧,这真的是错误的方式。对不同环境有不同设置的常见方法是将依赖于环境的内容存储在local_settings.py (或其他名称)中,并从settings.py导入

代码语言:javascript
运行
复制
from local_settings.py import *

不要将local_settings.py放在项目存储库下,因为每次提交都会覆盖它。如果您想保留本地设置的样本,请将其放入单独的文件中,例如local_settings.py.example

可以在settings.py开头导入本地设置(这样settings.py设置将覆盖本地设置),也可以在结尾导入本地设置,或者在这两种情况下都有两个本地设置文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14437324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档