PHP 컬 오류 코드 7에 대한 해결 방법: 1. selinux 디렉토리에서 구성 파일을 엽니다. 2. 구성 파일에서 "SELINUX=enforcing" 줄을 찾습니다. 3. "SELINUX=disabled"를 변경합니다. .
이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
PHP 컬 오류 코드 7 문제를 해결하는 방법은 무엇입니까? CURL 오류 해결 방법(7): 호스트에 연결할 수 없습니까?
타사 인터페이스를 호출할 때 로컬로 호출할 때는 모든 것이 정상이지만 온라인으로 호출할 때는 실패합니다!
타사 인터페이스가 curLRequest() 메서드를 통해 로컬로 호출되면 컬_errno() 메서드는 호출이 성공했음을 나타내는 결과 0을 반환합니다. 온라인 컬_errno() 메서드는 결과 7을 반환합니다. , 호출이 실패했음을 나타냅니다.
환경:
로컬 wamp, 온라인 lnmp
환경 문제를 해결하기 위해 서버 cmd에서 컬 기능을 실행하여 타사 인터페이스에 게시 요청을 했고 호출이 성공한 것을 확인했습니다! 호출 스크립트는 다음과 같습니다.
curl -i -X POST -H 'Accept:application/json' -H 'Content-Type:application/json;charset=utf-8' -H 'Authorization:**********************=' -d '{"voipAccount":"*********"}' 第三方接口的URL
타사 인터페이스 호출을 위한 키 코드:
/** * @param $requestUrl | String 请求的地址 * @param bool $https * @param $headerInfo | array 头文件信息 * @param string $rquestMethod | String 请求类型 * @param $requestData | json 发送请求的数据 * @return mixed */ public function curLRequest($requestUrl,$requestData,$https=true,$rquestMethod='post') { $headerInfo=[ 'Accept:application/json', 'Content-Type:application/json;charset=utf-8', 'Authorization:'.self::$auth ]; $ch = curl_init();//初始化 curl_setopt($ch, CURLOPT_URL, $requestUrl);//设置访问的URL curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器 curl_setopt($ch, CURLOPT_HTTPHEADER, $headerInfo); // 设置头信息 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//只获取页面内容,但不输出 if($https){ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//不做服务器认证 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//不做客户端认证 } if($rquestMethod == 'post'){ curl_setopt($ch, CURLOPT_POST, true);//设置请求是POST方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $requestData);//设置POST请求的数据 } $str = curl_exec($ch);//执行访问,返回结果 if(curl_errno($ch)){ Log::write('结果=========================================================:'.curl_errno($ch)); return ['statuscode' => -1, 'data' => 'curl请求错误,错误码为'.curl_errno($ch)]; } Log::write('结果=========================================================:'.curl_errno($ch)); Log::write('返回结果:'.$str); curl_close($ch);//关闭curl,释放资源 return json_decode($str,true); }
다양한 조사 끝에 코드가 정확했습니다. 온라인 환경 구성과 관련이 있습니다.
①selinux 디렉터리에서 구성 파일을 엽니다
nano /etc/selinux/config
②구성 파일에서 SELINUX=enforcing 줄을 찾습니다
3 SELINUX 변경=비활성화
4저장, 종료, 서버 다시 시작
CURL 오류 7 권한 거부에 연결하지 못했습니다." 오류는 일부 방화벽이나 이와 유사한 것에 의해 CURL 요청이 차단되었기 때문에 발생합니다.
curl 요청이 표준 포트와 일치하지 않을 때 이 문제가 발생합니다.
예를 들어 포트 1234에서 컬을 수행하면 포트 80 때문에 이 문제가 발생합니다.
가장 일반적인 이 오류는 CentOS 및 'selinux'가 있는 기타 운영 체제에서 나타납니다.
'selinux'를 비활성화하거나 변경해야 합니다.
권장 학습: " PHP 비디오 튜토리얼"
위 내용은 PHP 컬 오류 코드 7 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!