Django 1.4,Apache2,mod_wsgi,500内部服务器错误,日志中没有任何内容

时间:2015-02-05 16:14:09

标签: django apache mod-wsgi internal-server-error

我有一个在RHEL 6中使用Apache运行的Django应用程序,mod_wsgi,我的DEBUG = True文件中有settings.py

当我在尝试访问Web应用程序时突然遇到500个内部服务器错误时,似乎突然发生了(没有对服务器进行任何更改)。对于Apache,错误日志中没有任何内容(我几乎没有任何意义),即使在Django中将DEBUG设置为true,我仍然只能得到500页。

我尝试通过跟踪线程here添加广泛的Django日志记录,但它没有记录任何内容。

关于如何获得有关可能导致问题的更多信息的任何想法?

2 个答案:

答案 0 :(得分:0)

如果您已启用调试且工作正常,则应显示所有错误。

但是,无论您是否可以让Django通过电子邮件向您发送任何服务器错误,这些错误在响应生产环境问题时尤其有用。 error reporting上的文档会有所帮助,具体而言:

  

至少,您需要指定EMAIL_HOST,可能需要指定EMAIL_HOST_USER和EMAIL_HOST_PASSWORD,

我认为这是标准日志记录,但无论如何,在settings.py文件中确保ADMINS = ()不为空,然后检查日志记录配置。

当您使用DEBUG模式时,请确保您还没有包含require_debug_false过滤器。

ADMINS = (
    # ('Your Name', 'your_email@example.com'),
)

# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
} 

如果你已经掌握了所有这些,那么你应该对错误有所了解。

答案 1 :(得分:0)

事实证明,除了Apache问题之外,它根本不是Django问题。 Django应用程序受LDAP身份验证服务保护,该服务在Apache配置文件中配置。但是,LDAP服务器已关闭,因此Apache无法联系它。

即使我的配置文件中设置了LogLevel debug,Apache仍然没有记录此问题的原因仍然没有任何意义......