Django插入Apache不像Django独立工作

时间:2015-07-02 21:02:57

标签: python django apache mod-wsgi

我遇到了一些错误,试图将我的django网站投入Apache生产。最终得到mod_wsgi排序和Apache至少看起来试图加载网站我在主页无法加载时看到调试细节中的一些令人困惑的问题。

当我使用python manage.py runserver 10.10.10.214:8080启动网站时,这些错误都不会出现 - 它可以100%正常工作

  1. 导入错误 - 我不能from x import y - 由于某种原因,它只允许我from x import *示例#from django.conf.urls import patterns, include, url发出错误 - 我必须更改为{{1} }
  2. 权限错误 - 例如,我必须chmod之前工作正常的DB文件。我想没什么大不了的,但我只是想知道为什么
  3. 数据库字段错误:from django.conf.urls.defaults import * user_id在独立模式下运行良好。
  4. Apache日志提供了Cannot resolve keyword 'user_id' into field. Choices are: end_date, id, singleDate, start_date, user之类的错误,我通过在settings.py中注释TemplateSyntaxError: Caught ImportError while rendering: No module named staticfiles来懒得绕过它。不用说,这没有解决任何问题
  5. 几乎感觉这些文件是在独立的基础上处理的,而不是在django框架内。以前有没有人经历过这种出牙问题?我愚蠢地认为我可以插上。我有一种(没有根据的)乐观的感觉,它必须只是某个文件中的指令。

    干杯,亚瑟

1 个答案:

答案 0 :(得分:6)

您确定目标系统安装了相同版本的Django吗?

mod_wsgi甚至是为你想要使用的Python版本编译的吗?这是一个常见的错误,人们不会意识到mod_wsgi实际上是针对不同的Python版本,因此不使用与您期望的相同的Python安装,因此使用不同版本的软件包。

关于权限错误,这是因为默认情况下,在Apache下运行的代码作为Apache用户运行。它不具有与手动运行时相同的访问权限。您还必须小心假设过程的工作目录是什么。

为了尝试解决问题,最好在开发环境中尝试使用mod_wsgi-express。这样,开发环境就更接近目标系统。