php curl “couldn't connect to host” 解决方案

  今天php get访问一个接口,有时候成功,有时候又失败。

http_get方法

function http_get($url){
        //初始化
        $ch = curl_init();

        //设置选项,包括URL
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // https请求 不验证证书和hosts
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
        //执行并获取HTML文档内容
        $output = curl_exec($ch);
       // AddChatErrLogP("add_chat 验证token curl_exec error".json_encode(curl_error($ch)));

        //释放curl句柄
        curl_close($ch);
        return $output;
    }

log中curl_error($ch)发现问题为couldn't connect to host

出现这个问题可能是dns的问题 

vim /etc/resolv.conf 修改dns为 8.8.8.8 114.114.114.114 发现并不管用

后来想到可能是php版本的问题之前php版本是 7.02 卸载重装 php7.2 完美解决问题

yum provides php   #自带的只有5.4版本
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm         #更新源
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum remove php-common -y     #移除系统自带的php-common
yum install -y php72w php72w-opcache php72w-xml php72w-mcrypt php72w-gd php72w-devel php72w-mysql php72w-intl php72w-mbstring   #安装依赖包
php -v                    #版本变为7.2
 
yum provides php-fpm      #安装php-fpm,这里会提示多个安装源,选择7.2版本的安装就可以了
yum install php72w-fpm.x86_64 -y

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值