Я использую mod-wsgi с django, а в django я использую пилицен для полнотекстового поиска.
Хотя 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