mod_wsgi 守护进程模式在 Apache 中不起作用

mod_wsgi 守护进程模式在 Apache 中不起作用

我在 Debian / Apache 2.2.16 / Python 2.6.6 / mod_wsgi 3.3 / Django 1.3 设置中无法让 mod_wsgi 以守护进程模式运行。在嵌入模式下一切正常,但当我尝试切换到守护进程模式(如许多 HOWTO 中所述)时,它根本无法激活(environ['mod_wsgi.process_group']始终返回空字符串,但没有输出任何错误)。

WSGIPythonPath此外,使用指令或python-path选项设置 python 路径WSGIDaemonProcess似乎有效 -sys.path在 wsgi 脚本中输出总是返回原始系统 python 路径。

我读过有关配置和调试 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,我的设置是正确的。我可能遗漏了什么?

答案1

结果是符号链接设置不正确,所以我的配置更改从未加载到 Apache 中。很抱歉浪费了您的时间,我以为我在发布之前已经彻底检查了所有内容。

相关内容