首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django apache-wsgi配置问题

问Django apache-wsgi配置问题
EN

Stack Overflow用户
提问于 2010-06-17 20:15:15
回答 2查看 1.8K关注 0票数 2

我正在尝试让我的Django项目在生产服务器上运行。

我使用pip设置环境,因此它与一切正常运行的开发环境完全相同。唯一的区别是我不会在生产环境中使用virtualenv,因为这个项目是唯一可以在生产环境中运行的项目。同样在生产环境中,也有一个Nginx反向代理来服务静态内容,并将动态请求传递给Apache2。

Apache wsgi文件如下所示:

代码语言:javascript
复制
import sys, os

sys.path.append('/home/project/src')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

当我访问服务器时,我得到一个导入错误:

代码语言:javascript
复制
ImproperlyConfigured: Error importing middleware middleware: "cannot import name UserProfile"

它指的是由设置引用的src/ middleware.py下的文件夹。但是我可以从./manage.py shell提示符中导入中间件和UserProfile类。

wsgi文件中的路径似乎有问题,但我看不出是什么问题。目录结构为:

代码语言:javascript
复制
/home/project
/home/project/src (which contains the settings.py, middleware.py and app folders)
/home/apache/apache.wsgi

任何帮助都是非常感谢的。

谢谢,oMat

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-18 08:59:47

确保其他人可以读取所有目录/文件,以便Apache用户可以访问它们,除非您使用不同的用户运行守护程序模式,以防该用户必须能够读取它们。另请阅读:

http://blog.dscpl.com.au/2010/03/improved-wsgi-script-for-use-with.html

它可能没有帮助,但在最后描述的WSGI脚本文件内容将确保进程环境设置得更接近Django开发服务器所做的事情,以防与这些差异相关。

票数 3
EN

Stack Overflow用户

发布于 2010-06-18 09:03:41

查看我自己的文件,我添加了包含项目的目录,并且指定了project.settings,而不是settings

尝试:

代码语言:javascript
复制
import sys, os

sys.path.append('/home/')
sys.path.append('/home/project/')

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

如果按顺序指定~/django-sites而不是/home,这样会更好

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

https://stackoverflow.com/questions/3061502

复制
相关文章

相似问题

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