php curl 内存泄露,PHP CURL HTTPS内存泄露问题

还原场景:通过一直运行脚本,向微信用户发送模板消息,发现运行了一段时间,内存就爆了,然后立马看了一下代码,发现跟其他的消息逻辑一模一样,唯一不一样的就是请求了微信的接口;然后继续开始找问题,发现当时使用了curl请求微信的接口,源码如下:

function http_request($url = '', $message = '')

{

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

curl_setopt($ch, CURLOPT_POSTFIELDS, $message);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HTTPHEADDER, array(\

'Content-Type: application/json',

'Content-Length: ' . strlen($message)

));

$result = curl_exec($ch);

if (curl_errno($ch)) {

print curl_error($ch);

}

curl_close($ch);

return $result;

}

然后,运维就通知我,今天凌晨服务器的内存爆了,这个脚本也被重启了;

猜测一:是否昨天晚上有大批量的推送,因为之前出现过这个问题,导致了内存爆了,然后赶紧查了一下后台,发现没有推送被创建,排除;

猜测二:调用微信接口存在问题,然后运维把监控的情况发了过来;

05231a7c2fb3baa166afd3350e14d2dd.png

解决办法:

1、更新curl模块;

2、禁用ssl验证;

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值