PHP curl Could not resolve host错

2020-07-16  本文已影响0人  阳光下丶憧憬

今天修改公司的祖传代码的时候,发现发送短信接口突然不好使了,经过排查问题,终于解决问题,下面是排查过程:

1.首先查看接口地址,发现短信平台的域名发生了更换,心里大喜,emmm,更换后,发现还是不好使,然后就出现了上面的报错
2.网上有很多解决办法,说本机IPV6 和DNS的问题,那么,首先,我们要确定是否是这个问题。首先排查DNS解析的问题:假设接口地址是baidu.com
依次在服务端执行以下几条命令:
注意:NDS 配置最好是 114.114.114.114 8.8.8.8

curl baidu.com
dig baidu.com
ping baidu.com
nslookup baidu.com

都没有问题,那么就直接排除是DNS的问题,IPV6的解决方法如下:

curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false ); #使用DNS缓存
curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 2 );
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );#禁用IPV6

发现还是报同样的问题,那么IPV6的问题可以基本排除了,那么就从php-fpm 入手
3.重启php-fpm后,重新请求,发现问题已经解决了,下面附php-fpm的重启方法:

systemctl restart php-fpm #contos7

service php-fpm restart #centos6

#如果以上两个命令都无法重启,那么就是你PHP编译的问题了,可以重新安装,或者用下面的方法

find / -name php-fpm.pid #先找到我们的php-fpm 进程id的路径,然后重启

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` #问题解决
上一篇下一篇

猜你喜欢

热点阅读