Назад | Перейти на главную страницу

Установка Mod-wsgi 3.3 для apache 2.2 и python 3.2

Я пытаюсь установить Mod-wsgi 3.3 на настольную версию ubuntu 11.10 с apache 2.2 и python 3.2

Я скачал архив с исходным кодом и распаковал его. Я настроил его с помощью --with-python=/usr/bin/python3 возможность configure. Это единственная установленная мной копия python3.

Затем я отдал команды make и sudo make install.

Я попытался перезапустить apache, используя sudo /etc/init.d/apache2 restart и получите следующее сообщение об ошибке:

apache2: Syntax error on line 203 of /etc/apache2/apache2.conf: Syntax error on line 1
of /etc/apache2/mods-enabled/wsgi.load: Cannot load /usr/lib/apache2/modules
/mod_wsgi.so into server: /usr/lib/apache2/modules/mod_wsgi.so: undefined symbol: 
PyCObject_FromVoidPtr
Action 'configtest' failed.
The Apache error log may have more information.
   ...fail!

Журналы ошибок только информируют нас о том, что это segfault: `

Я проверил, связан ли он с правильной библиотекой Python с помощью ldd mod_wsgi.so и получил результат

linux-gate.so.1 =>  (0x00d66000)
libpython3.2mu.so.1.0 => /usr/lib/libpython3.2mu.so.1.0 (0x0065b000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0x00a20000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00110000)
libssl.so.1.0.0 => /lib/i386-linux-gnu/libssl.so.1.0.0 (0x0028c000)
libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0x0044c000)
libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0x002d9000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0x00eb3000)
libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0x00abe000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0x002e0000)
libutil.so.1 => /lib/i386-linux-gnu/libutil.so.1 (0x00c47000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0x00e24000)
/lib/ld-linux.so.2 (0x0042c000)

Кажется, это связано с библиотекой python3, поэтому я не уверен, в чем проблема. Я читал по другому вопросу, что mod-python может вызывать проблемы, но он так и не был установлен.

Я видел, что директива WSGIPythonHome может использоваться для указания правильной версии Python и создания каталога /usr/bin/apache2-python/ со ссылкой под названием python и python3(имя, которое я передал скрипту настройки) на /usr/bin/python3 Это приводит к той же ошибке. Так что я почти уверен, что он использует правильную версию python.

Я сейчас в растерянности.

Заранее благодарю за любую помощь.

Обновить

Используя версию из репозитория, я получаю следующий журнал, когда пытаюсь запросить страницу:

[Wed Mar 21 13:21:11 2012] [notice] child pid 5567 exit signal Aborted (6)
Fatal Python error: Py_Initialize: Unable to get the locale encoding
LookupError: no codec search functions registered: can't find encoding
[Wed Mar 21 13:21:13 2012] [notice] child pid 5568 exit signal Aborted (6)
Fatal Python error: Py_Initialize: Unable to get the locale encoding
LookupError: no codec search functions registered: can't find encoding
[Wed Mar 21 13:21:14 2012] [notice] caught SIGTERM, shutting down

Если я закомментирую инструкцию по загрузке mod-wsgi, страница будет работать нормально.

Для Python 3.2 используйте исходный код из репозитория mod_wsgi.

http://code.google.com/p/modwsgi/source/checkout