今天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