【问题标题】:Apache/mod_wsgi daemon mode not workingApache/mod_wsgi 守护进程模式不工作
【发布时间】:2013-02-04 00:07:03
【问题描述】:

我无法让 mod_wsgi 在我的 Debian/Apache/Python2.6/Django 设置上以守护程序模式运行。在我的虚拟主机配置文件中,我有

<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 脚本激活。

【问题讨论】:

    标签: django apache mod-wsgi


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      mod_wsgi.process_group = '' 行暗示您仍在嵌入式模式下运行(如您所见)。 mod_wsgi 守护程序模式在 Apache 1.x 上不起作用,所以我假设您正在运行 2.x(您也注意到了)。

      你可以尝试设置apache

      LogLevel info
      

      以便在日志文件中有更多有用的信息。我还假设您已强制 apache 重新启动

      # /etc/init.d/apache2 restart
      

      这在守护程序模式下应该没有太多必要,但如果您之前处于嵌入式模式,则需要重新加载配置文件。

      【讨论】:

      • 您的所有假设都是正确的,我在尝试调试时反复重新启动 apache。我还设置了LogLevel info,日志文件中没有显示其他信息。不幸的是,我仍然被困在这个问题上......
      猜你喜欢
      • 2011-05-09
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多