我正在尝试在apache 2.2和python 3.2的ubuntu 11.10桌面版上安装Mod-wsgi 3.3
我下载了源码包并解压缩了。 我使用--with-python=/usr/bin/python3选项来configure 。 这是我安装的python3的唯一副本。
然后我发出命令make和sudo make install 。
我试图用sudo /etc/init.d/apache2 restart重新启动apache,并得到以下错误信息:
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!
错误日志只告诉我们这是一个段错误:`
我检查,确保它与ldd mod_wsgi.so链接到正确的Python库,并得到了输出
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版本,并创build了一个名为/usr/bin/apache2-python/其中一个名为python和python3的链接(我传递给configure脚本的名称)到/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存储库中的源代码。