【发布时间】:2009-02-14 04:39:28
【问题描述】:
我在 django 中使用 mod-wsgi,在 django 中我使用 pylucene 进行全文搜索。
mod-wsgi虽然配置为嵌入模式,但完全没有问题。 但是当 mod-wsgi 配置为守护模式时,apache 就卡住了, 并且浏览器只是继续加载,但什么也没有出现。
然后我确定问题是 jcc.initVM()。 这是我的 wsgi 脚本:
import os, sys, jcc
sys.stderr.write('jcc.initVM\n')
jcc.initVM()
sys.stderr.write('finished jcc.initVM\n')
....
在我重新启动 apache 并从浏览器发出请求后,我发现 /var/log/apache2/error.log 只有:
jcc.initVM
意味着它卡在 jcc.initVM() 行。 (如果mod_wsgi配置为嵌入模式,是没有问题的。)
这是我的 /etc/apache2/sites-available/default:
WSGIDaemonProcess site user=ross group=ross threads=1
WSGIProcessGroup site
WSGIScriptAlias / /home/ross/apache/django.wsgi
<Directory /home/ross/apache/>
Order deny,allow
Allow from all
</Directory>
最后,我发现在jcc(jcc.cpp)的源代码中,它在函数处挂起:
JNI_CreateJavaVM(&vm, (void **) &vm_env, &vm_args)
如何解决问题?
程序版本:
libapache2-mod-wsgi 2.3-1
jcc 2.1
python 2.5
Apache 2.2.9-8ubuntu3
Ubuntu 8.10
【问题讨论】:
标签: python apache mod-wsgi pylucene jcc