使用curl安装zend php 53时出现Apache 2 Segmentation故障

Sir*_*rex 2 php apache zend-framework segmentation-fault

我花了很多时间弄清楚为什么apache2会崩溃.我的环境是:

  • Debian测试
  • Apache 2(重写,ssl等)
  • 从zend repo安装的PHP 5.3 Zend

没什么不合时宜的,但是dmesg说:

apache2[xxxx]: segfault at 18 ip xxxx sp xxxx error 4 in libphp5.so[xxxxx]
Run Code Online (Sandbox Code Playgroud)

我找到的日志中没有别的东西,很难找到问题所在.

Sir*_*rex 7

我开始从php模块发现问题,因为很多分段错误与php模块有关.经过几次测试后,我发现禁用模块卷曲可以解决问题.但在我的情况下需要卷曲,所以我必须继续调查.

一个重要的认为启用curl的php-cli工作正常并且php -m也是如此.

所以肯定是apache的问题.一小时后,我发现使用已禁用的ssl并启用了curl apache.

两个模块(mod_ssl,php_curl)存在冲突.并ldd mod_ssl.so表明这个库依赖于libcrypto.so.1.0.0.实际上,aptitude告诉我openssl的版本是1.0.0-e.但phpinfo()告诉我它是用它构建的--with-openssl=/usr/local/openssl-0.9.8o.有冲突.有两个模块依赖于openssl但是使用不同的版本构建:0.9.8o vs 1.0.0-e!

我不得不将我的apache2和openssl版本降级到适当的版本,现在它可以工作:ssl和curl两者.

因为很难弄清楚这个问题,所以我决定在这里发布这个提示.我希望这个小小的音符可以帮助别人节省一些时间.