【问题标题】:Django, mod_wsgi, Apache: Internal server errorDjango、mod_wsgi、Apache:内部服务器错误
【发布时间】:2012-08-19 09:42:08
【问题描述】:

我在 Redhat 服务器中配置了带有 mod_wsgi 2.0 和 apache 2.2.3 的 Django 1.4。 但是当我尝试访问服务器时,出现以下错误: “错误 500:内部服务器错误。”

[root@lts5srv1 hardi]# wget mritest.domain.ch
--2012-08-23 21:51:27--  http://mritest.domain.ch/
Resolving mritest.domain.ch... 127.0.0.1
Connecting to mritest.domain.ch|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 500 Internal Server Error
2012-08-23 21:51:27 ERROR 500: Internal Server Error.

所以我有连接,但我没有得到任何有效的响应。 是否取决于 django 版本,我应该使用 Django 1.3 进行部署吗?

编辑

Apache 错误日志:

[Thu Aug 23 22:34:04 2012] [error] [client 127.0.0.1] mod_wsgi (pid=7835): Exception occurred processing WSGI script '/home/django_www/hello/apache/django.wsgi'.
[Thu Aug 23 22:34:04 2012] [error] Traceback (most recent call last):
[Thu Aug 23 22:34:04 2012] [error] File "/home/django_www/hello/apache/django.wsgi", line 1, in <module> [Thu Aug 23 22:34:04 2012] [error] import os
[Thu Aug 23 22:34:04 2012] [error] ImportError: No module named os"

【问题讨论】:

  • 你检查过服务器日志看是否有任何相关信息吗?
  • 另外,将settings.py 中的DEBUG 更改为False,然后重新加载Apache。如果日志中没有有用的错误,页面本身就会有一个启用DEBUG 的错误。
  • 是的,在服务器中没有出现任何有用的错误!
  • @supervacuo:你的意思应该是把DEBUG设置成True吧?
  • 请按照stackoverflow.com/a/6449787/1388240中的建议检查您的WSGIPythonPath的配置

标签: python django apache mod-wsgi


【解决方案1】:

mod_wsgi.so 是为特定的 Python 版本编译的。如果您没有安装该版本或强制它使用不同的 Python 版本,则可能会出现此问题,这是无法做到的。

找出编译的 Python mod_wsgi.so 版本。

http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Shared_Library http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Installation_In_Use

所以首先要做的是弄清楚 mod_wsgi.so 是针对什么编译的。

【讨论】:

    【解决方案2】:

    Web 服务器的文件描述符不足。在 httpd 初始化脚本中使用ulimit -n 来增加允许的文件描述符数量。

    【讨论】:

      猜你喜欢
      • 2017-09-05
      • 2017-07-15
      • 2015-06-09
      • 2017-08-25
      • 1970-01-01
      • 2018-06-07
      • 2023-03-19
      • 2015-02-12
      • 2011-08-08
      相关资源
      最近更新 更多