Django / Apache / mod_wsgi - WEB 应用程序挂起 - 无法启动

Posted

技术标签:

【中文标题】Django / Apache / mod_wsgi - WEB 应用程序挂起 - 无法启动【英文标题】:Django / Apache / mod_wsgi - WEB Application Hangs - Fails to Launch 【发布时间】:2013-06-19 20:49:45 【问题描述】:

我的 Django WEB 应用程序突然无法启动,并且突然出现问题。

直到昨天在生产中都运行良好。

我无法弄清楚问题出在哪里。它可以是 apache 或 mod_wsgi 或 windows,但目前我不知道。

我已尝试重新安装所有 python 库/先决条件等,但问题仍然存在。

我在 Apache 端口 8999 为 WEBApp 提供服务,当我访问 WEB 应用程序时,浏览器无法显示任何错误。它只是不断尝试打开页面,在状态栏中我只看到等待消息。

如果我看到 netstat 结果,那么我会看到以下内容

C:\Documents and Settings\admintemp>netstat -an |查找“8999”TCP 0.0.0.0:8999 0.0.0.0:0 监听 TCP 172.18.148.156:8999 10.107.226.88:1826 已建立

此连接将永远建立,并且没有任何反应。 Internet 浏览器似乎只是试图继续打开 Web 应用程序,它看起来好像在等待永远。

我在 Apache 日志中看到的唯一内容就是这个

[Fri Jun 21 18:34:32 2013] [warn] mod_wsgi: Compiled for Python/2.7.
[Fri Jun 21 18:34:32 2013] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Fri Jun 21 18:34:32 2013] [notice] Apache/2.2.22 (Win32) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
[Fri Jun 21 18:34:32 2013] [notice] Server built: Jan 28 2012 11:16:39
[Fri Jun 21 18:34:32 2013] [notice] Parent: Created child process 3876
[Fri Jun 21 18:34:32 2013] [warn] mod_wsgi: Compiled for Python/2.7.
[Fri Jun 21 18:34:32 2013] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Fri Jun 21 18:34:32 2013] [notice] Child 3876: Child process is running
[Fri Jun 21 18:34:32 2013] [notice] Child 3876: Acquired the start mutex.
[Fri Jun 21 18:34:32 2013] [notice] Child 3876: Starting 64 worker threads.
[Fri Jun 21 18:34:32 2013] [notice] Child 3876: Starting thread to listen on port 8999.
[Fri Jun 21 18:34:43 2013] [error] C:/Program Files/App_Logic/logic_apps/logic_apps\\..\\logic_apps

我还在 Windows 事件查看器日志(应用程序日志)中注意到以下消息,但我不确定这如何(以及是否)与我手头的问题有关。每次我访问 Web 应用程序时,此消息似乎都会显示一次。

应用程序弹出窗口:Microsoft Visual C++ 运行时库:运行时 错误!

程序:C:\Progr...

R6034 应用程序已尝试加载 C 运行时库 不正确。请联系应用程序的支持团队了解更多信息 信息。

上述错误信息的确切截图位于http://imgur.com/hijiKv8

请注意,作为我分析的一部分,我已经尝试过

访问http://127.0.0.1:8999 的apache 页面确实向我展示了它的工作原理!留言 使用 Django 开发服务器运行 WEB 应用程序,它启动正常。 更改 wsgi.py 文件,当我故意在文件中引入错误时,访问 Web 应用程序确实会抱怨相关。

该应用程序安装在 Windows Server 2003 SP1 上,并且此计算机上没有自动更新计划,因此我不怀疑更新会导致此问题。我还看到了 Windows 更新日志,最近没有安装任何东西。

该应用程序基于以下 Python 库作为先决条件

httpd-2.2.22-win32-x86-openssl-0.9.8t.msi python-2.7.3 Django-1.4.3 psycopg2-2.4.6.win32-py2.7-pg9.2.2-release cx_Oracle-5.1.2-10g.win32-py2.7 PIL-1.1.7.win32-py2.7 python-ldap-2.4.10.win32-py2.7 南0.7.6 xlrd-0.9.0 xlwt-0.7.5 mod_wsgi.so

我已尝试使用 WSGIApplicationGroup %GLOBAL 指令并将日志级别设置为调试和信息,但生成的日志未提供任何其他信息。

我已在http://dpaste.com/1268653/ 发布了 apache 调试级别日志 我已在http://dpaste.com/1268660/

发布了 apache 信息级别日志

这两个日志都是在 apache 重新启动后获取的,然后应用程序挂起,直到我停止 apache 并复制了日志。

我还尝试运行 https://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines 中记录的 Hello World 应用程序,它运行良好。

我仍然一无所知。如果您能指导我如何获得有关该问题的更多详细信息,我将不胜感激。

如果有人可以指导我解决此问题或获取更多信息以解决此问题的根源。

【问题讨论】:

【参考方案1】:

我最终解决了这个问题。

Runtime error R6034 in embedded Python application 的帖子让我找到了解决方案。

感谢 Graham Dumpleton 和其他帮助我离线解决此问题的人。

最后还是有点厚脸皮,msvcr90.dll的版本冲突

我从路径中删除了 IBM Bit,现在它可以正常工作了。

【讨论】:

以上是关于Django / Apache / mod_wsgi - WEB 应用程序挂起 - 无法启动的主要内容,如果未能解决你的问题,请参考以下文章

apache部署django出现403Forbidden错误怎么解决

网站部署 Django+Apache

[django]django 在apache2上部署静态文件如何加载

Django + dbxml + Apache = 问题。有啥解决办法吗?

Django - Apache2 - Postgresql:_psycopg 出错

Apache2 部署 Django