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` #问题解决