2013-02-19 78 views
0

我在使用守护进程模式在我的Debian/Apache/Python2.6/Django安装程序中运行mod_wsgi时遇到问题。在我的虚拟主机配置文件中我有Apache/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 = '' 

其中,accroding该文件,表示不使用守护进程模式。我检查了我的设置多次,Apache的版本,mod_wsgi和Python匹配,根据我读过的所有HOWTO,我的设置是正确的。我可能会错过什么?


编辑:仅供参考我的应用程序中嵌入模式运行良好,我只是想切换到后台模式,并发现它是使用上述WSGI脚本没有被激活。

回答

1

事实证明,一个符号链接没有正确设置,所以我的配置更改从未在Apache中加载。对不起浪费你的时间,我想我在发布之前彻底检查了一切。

0

mod_wsgi.process_group = ''意味着您仍然在嵌入模式下运行(如您所注意的)。 mod_wsgi守护进程模式将不会在Apache 1.x上工作,所以我假定您正在运行2.x(正如您也注意到的)。

你可以尝试设置Apache的

LogLevel info 

,以便有在日志文件中更多有用的信息。我也假设你已经被迫阿帕奇重新启动

# /etc/init.d/apache2 restart 

这不应该是在守护进程模式需要的那么多,但如果你在嵌入模式之前,你需要重新加载您的配置文件。

+0

你所有的假设都是真实的,并且在尝试调试时反复重启apache。我还设置了'LogLevel info',没有在日志文件中显示的附加信息。不幸的是,我仍然坚持这个问题... – 2013-02-19 11:53:48