发现php里获取https内容有问题,所以查了很多资料,发现确实有这个问题,也同时对比了一下,想尝试解决这个问题。 phpinfo里打印的curl的信息: libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 以前正常的服务器的curl信息: libcurl/7.15
发现php里获取https内容有问题,所以查了很多资料,发现确实有这个问题,也同时对比了一下,想尝试解决这个问题。
phpinfo里打印的curl的信息:
libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
以前正常的服务器的curl信息:
libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
测试过同样的代码,http请求没有问题,https请求,网页直接返回502错误
后面一个文章提示 fastcgi_param的问题,测试过没有效果。
怀疑是curl和openssl的问题,因为版本里是NSS,不是OpenSSL
这有一份对比 http://curl.haxx.se/docs/ssl-compared.html
想着试试重新安装curl和openssl
参考这个:linux php源码包 安装openssl 和curl 扩展
http://yonghui702.blog.163.com/blog/static/81718342013111953738670/
安装过后,配置php.ini,重启php,也没有发现curl的信息发生改变
测试结果也没有正常
也有yum安装更新了curl和openssl,没感觉有效
strace跟踪一下php的进程,也不太会看,但不知道为啥,后面是正常了
看phpinfo的信息倒是没变
本文没有查到明确的解决方式,只是多尝试了几个方式,没有明确哪个产生了解决效果
所以,纯当参考吧
更多参考:
http://bbs.51cto.com/thread-1077956-1-1.html
http://stackoverflow.com/questions/17439199/php-fpm-crashed-when-curl-or-file-get-contents-request-a-https-url
https://bugs.php.net/bug.php?id=19301
https://bugs.php.net/bug.php?id=47616
原文地址:php用file_get_contents和curl请求https页面会报502错误, 感谢原作者分享。