使用curl或file_get_contents的HTTPS请求会导致php崩溃

时间:2012-06-18 02:07:21

标签: php https

服务器上的php启用了openssl扩展(可以在phpinfo()中看到)

PHP Version 5.2.14

  

'./ configure'' - prefix = / usr / local / webserver / php'' - with-config-file-path = / usr / local / webserver / php / etc'' - with-mysql = / usr / lib64 / mysql'' - with-mysqli = / usr / bin / mysql_config'' - with-iconv-dir = / usr / local'' - with-freetype-dir''--with- jpeg-dir'' - with-png-dir'' - with-zlib'' - with-libxml-dir = / usr'' - enable-xml'' - disable-rpath'' - enable -discard-path'' - enable-safe-mode'' - enable-bcmath'' - enable-shmop'' - enable-sysvsem'' - enable-inline-optimization'' - with-curl ''with-curlwrappers'' - enable-mbregex'' - enable-fastcgi'' - enable-fpm'' - enable-force-cgi-redirect'' - enable-mbstring'' - with-mcrypt'' - with-gd'' - enable-gd-native-ttf'' - with-openssl'' - with-mhash'' - enable-pcntl'' - enable-sockets' '--with-ldap'' - with-ldap-sasl'' - with-xmlrpc'' - enable-zip'' - enable-soap'

PHP-fpm.log

  

Jun 18 10:03:08.882866 [警告] fpm_stdio_child_said(),第167行:子8665(默认池)对stderr说:“”

     

Jun 18 10:03:08.884945 [NOTICE] fpm_got_signal(),第48行:收到SIGCHLD

     

Jun 18 10:03:08.885008 [警告] fpm_children_bury(),第215行:从启动33.717855秒后,信号11 SIGSEGV退出子8665(默认池)

     

Jun 18 10:03:08.885573 [NOTICE] fpm_children_make(),第352行:子8689(默认池)已启动

     

Jun 18 10:03:09.689830 [警告] fpm_stdio_child_said(),第167行:孩子8606(默认池)对stderr说:“[Mon Jun 18 10:03:09 2012”225

     

Jun 18 10:03:09.690014 [警告] fpm_stdio_child_said(),第167行:子8606(默认池)对stderr说:“] [通知] EACCELERATOR(8606):PHP在curl_exec()的opline 130上崩溃了xxx.php:383“

但是当通过HTTPS请求时,nginx返回502(坏门方式)错误。

如何找到原因?

2 个答案:

答案 0 :(得分:0)

几天前我遇到了一个非常类似的问题,我的系统是Linux CentOS6.2, 最后我使用CentOS 5.6,问题解决了, 我认为原因是系统版本和openSSL版本不匹配,
我的英语不是很好,但希望对你有帮助

答案 1 :(得分:0)

这是libcurl问题。

确保libcurl支持openssl。

checking for SSL support in libcurl... yes
checking for openssl support in libcurl... yes