我正在使用Hostgator开发Linux Centos虚拟主机。我正在使用httpd版本2.2.15。
我使用标记--with-python=/usr/local/bin/python2.7
和--enable-shared
配置了mod_wsgi-4.4.13。 Python 2.6安装在/usr/bin
中。我有一个从/usr/local/lib/python2.7/config/libpython2.7.so.1.0
到/usr/local/lib/libpython.2.7.so.1.0
的符号链接。
我的问题是,当我在python 'index.fcgi'
中运行/var/www/html
时,我收到了错误
来自mod_wsgi的导入get_wsgi_application ImportError:/usr/lib64/httpd/modules/mod_wsgi.so:undefined symbol:apr_bucket_shared_split
我已尝试将$PYTHONHOME
设为/usr/local
。我已经设置了$LIBRARY_LD_PATH
变量(在此之前我根本无法获取库)。我真的不确定接下来该做什么。请帮忙!
谢谢。
答案 0 :(得分:0)
您有以下问题。
1 - --enable-shared
不与mod_wsgi构建一起使用,但在构建时使用Python的configure
脚本。有关详细信息,请参阅:
2 - 从内存中,Python的共享库应该已经链接到/usr/local/lib
。如果你的Python安装没有出错。即使安装在备用位置使得库不在正常的共享库搜索路径上,而不是将libpython.2.7.so.1.0
符号链接到适当的目录中,最好设置LD_RUN_PATH
环境变量当从干净的源代码构建mod_wsgi成为Python共享库的目录时。参见:
3 - .fcgi
文件与mod_wsgi无关,那么为什么你首先运行python index.fcgi
?
4 - 没有任何东西告诉你输入你的代码:
from mod_wsgi import get_wsgi_application
你在哪里看到你需要这样做?为什么甚至加载mod_wsgi.so
我不知道Python不应该能够在Apache模块目录中找到它,就像那个目录不在普通的Python模块搜索上一样路径。
简而言之,您似乎正在做的事情已经告诉我们,您正在做的事情并不是mod_wsgi文档告诉您的事情。请提供指向您用于设置的官方mod_wsgi文档部分的指针。