在初始化 python-ldap 时 httpd 出现段错误 (11)

1 投票
1 回答
1238 浏览
提问于 2025-04-16 12:55

我在RHEL 5上用Python 2.43运行一个Django应用(OSQA),使用的是mod_wsgi。

我之前把网站设置好并且运行得很好,然后尝试用python-ldap来整合身份验证,以便访问Active Directory中的一些属性,比如用户的名字、电子邮件地址等等。

结果Apache httpd崩溃了,显示了以下信息:

[notice] child pid 18705 exit signal Segmentation fault (11)

我最开始以为这是因为Apache和Python之间的expat库不一致,但后来我把libexpat.so模块升级到了和Python版本的pyexpat(1.95.8)一致。

通过在django日志中进行大量记录,我发现当执行以下这行代码时,出现了段错误:

con = ldap.initialize(AD_LDAP_URL)

请问python-ldap有没有什么特别的地方导致这个问题?还有其他调试的建议吗?

谢谢

1 个回答

1

试着关闭任何使用LDAP的Apache认证模块。如果你在用mod_php,也可以尝试把它关掉,因为它可能在加载LDAP扩展。简单来说,库版本冲突可能是因为LDAP库的问题,而不是expat。所以先把其他的Apache模块关掉,看看问题是否解决了。这样可以帮助你更准确地找到问题所在。

撰写回答