Apache / mod_wsgi守护程序模式不起作用

时间:2013-02-19 10:34:02

标签: django apache mod-wsgi

我在Debian / Apache / Python2.6 / Django设置中让mod_wsgi以守护进程模式运行时遇到问题。在我的虚拟主机配置文件中,我有

<VirtualHost *:80>

  ServerName mysite.com

  WSGIDaemonProcess mysite.com processes=2 threads=15
  WSGIProcessGroup mysite.com

  WSGIScriptAlias / /path/to/mysite/wsgi/django.wsgi

  <Directory /path/to/mysite/wsgi/>
    Order deny,allow
    Allow from all
  </Directory>

</VirtualHost>

设置。为了测试守护进程模式的激活,我使用这个wsgi脚本:

import sys
import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')

def application(environ, start_response):
    print >> sys.stderr, 'mod_wsgi.process_group = %s' % repr(environ['mod_wsgi.process_group']) 

    from django.core.handlers.wsgi import WSGIHandler
    _application = WSGIHandler()

    return _application(environ, start_response)

,生成的日志文件总是说:

mod_wsgi.process_group = ''

,根据文档,表示未使用守护程序模式。我多次检查我的设置,Apache,mod_wsgi和Python的版本是匹配的,根据我在那里阅读的所有HOWTO,我的设置是正确的。我能错过什么?


编辑:仅供参考我的应用程序在嵌入式模式下正常运行,我只是想切换到守护进程模式,发现它没有使用上面的wsgi脚本激活。

2 个答案:

答案 0 :(得分:1)

事实证明,未正确设置符号链接,因此我的配置更改从未在Apache中加载。很抱歉浪费你的时间,我以为我在发布之前已经彻底检查了一切。

答案 1 :(得分:0)

mod_wsgi.process_group = ''表示您仍在嵌入模式下运行(如您所知)。 mod_wsgi守护程序模式无法在Apache 1.x上运行,因此我假设您正在运行2.x(正如您还要注意的那样)。

您可以尝试设置apache

LogLevel info

以便日志文件中有更多有用的信息。我也假设你强迫apache重启

# /etc/init.d/apache2 restart

在守护进程模式下这不是必需的,但如果您之前处于嵌入模式,则需要重新加载配置文件。