Apache无法加载mod_wsgi:抱怨'缺less符号'

当我安装mod_wsgi后运行apachectl configtest出现以下错误信息:

httpd: Syntax error on line 117 of /private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_wsgi.so into server: dlopen(/usr/libexec/apache2/mod_wsgi.so, 10): Symbol not found: _PyEval_ReleaseLock\n Referenced from: /usr/libexec/apache2/mod_wsgi.so\n Expected in: dynamic lookup\n

我用python 2.7.8从源代码编译mod_wsgi 3.5。 Apache是​​2.2.11版本。 广泛的谷歌search没有出现类似的问题。 有可能apache试图使用python的系统版本,而不是我已经安装的版本(也是我用来编译mod_wsgi的版本)。

任何想法是什么导致这个错误,以及如何纠正?

如果您正在编译Apache将依赖的Apache和其他模块或应用程序,并且它们位于与系统范围LDconfiguration不同的位置,那么您的启动脚本应该可能指定LD_LIBRARY_PATH。

来自我自己的服务器,有很多自定义编译代码的示例:

 LD_LIBRARY_PATH="/opt/apache/lib:/opt/zlib/lib:/opt/openssl/lib";export LD_LIBRARY_PATH 

您也可以对任何模块使用“ldd”来查看它所引用的dynamic库。 如果您的各种编译器标志或选项丢失包含在正确的位置,您可能混合了错误的头和库。 这可能会导致更令人困惑的行为,因为应用程序可能会启动,但在某些情况下会发生段错误。