curl_version () 함수를 호출하려고 할 때 다음과 유사한 오류가 발생합니다.
<span><span>Fatal error: Uncaught </span><span><span class="hljs-built_in">Error</span></span><span>: Call to undefined </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">curl_version</span></span><span>(</span><span><span class="hljs-params"></span></span><span>)...
</span></span>이 오류는 일반적으로 PHP 환경에서 컬 확장이 활성화되지 않은 경우에 발생합니다. PHP의 내장 컬 라이브러리는 옵션 확장자이며 Curl_version () 함수는 설치되지 않거나 활성화 된 경우 사용되지 않습니다.
컬 확장이 PHP에서 활성화되어 있는지 확인하십시오. 컬 확장이 나열되는지 확인하려면 터미널에서 다음 명령을 실행하십시오.
<span><span>php -m | grep curl
</span></span>출력이 없으면 컬 확장이 활성화되지 않습니다.
컬 확장 활성화 :
Linux 시스템의 경우 다음 명령을 사용하여 CURL EXTENSION을 설치할 수 있습니다.
<span><span>sudo apt-get install php-curl
</span></span>또는:
<span><span>sudo yum install php-curl
</span></span>Windows Systems의 경우 Php.ini 파일에 Line Extension = Curl 이 주석을 달지 않도록하십시오. 주석이있는 경우 (이전에 세미콜론 ; ) 주석을 제거하고 웹 서버를 다시 시작해야합니다.
설치 및 활성화 후 PHP 및 웹 서버 (예 : Apache 또는 Nginx)를 다시 시작하고 Curl_version () 기능을 다시 호출하십시오.
curl_version () 함수가 호출되면 반환 된 결과는 null 이며 유용한 정보가 없습니다. 이것은 일반적으로 컬 확장이 올바르게 설치되거나 구성되지 않을 때 발생합니다.
curl_version () 함수는 올바르게 설치된 컬 확장에 따라 다릅니다. 컬 확장이 완전히 설치되지 않았거나 잘못 구성된 경우 NULL 이 반환 될 수 있습니다.
또 다른 가능한 이유는 PHP 버전과 컬 확장 사이의 비 호환성 때문입니다.
컬 확장이 올바르게 설치되고 활성화되어 있는지 확인하십시오. PHP에서 CURL이 유효한지 확인하려면 위의 단계를 참조하십시오.
PHP 및 CURL 확장 버전이 호환되는지 확인하십시오. 이전 버전의 PHP를 사용하는 경우 PHP를 업그레이드하거나 해당 버전과 호환되는 컬 확장을 사용해야 할 수도 있습니다.
Curl_version () 호출 될 때 반환 된 버전 정보는 SSL 또는 기타 전송 프로토콜에 대한 지원 부족과 같이 불완전합니다.
컬의 기능은 컴파일 타임 구성 옵션에 따라 다릅니다. PHP를 컴파일 할 때 특정 기능 (예 : SSL, IPv6, HTTP2 등)이 활성화되지 않으면 Curl_Version () 에 의해 반환 된 정보가 해당 지원이 부족할 수 있습니다.
PHP, 특히 CURL 확장에 대한 SSL 지원을 컴파일 할 때 필요한 기능이 활성화되어 있는지 확인하십시오. phpinfo () 의 출력을 확인하여 확인할 수 있습니다.
PHP 환경에 특정 기능이 활성화되지 않은 경우 PHP를 재 컴파일하고 관련 옵션을 활성화하거나 모든 기능 지원으로 PHP 배포를 선택하는 것을 고려하십시오.
Curl_version ()을 사용하여 CURL 버전 정보를 얻을 때 프로토콜 목록에 HTTPS 프로토콜이 없어 HTTPS 요청을 실행하려고 할 때 고장이 발생했습니다.
이 문제는 일반적으로 PHP의 컬 확장이 SSL 또는 HTTPS 프로토콜을 올바르게 지원하지 않을 때 발생합니다. CURL은 HTTPS 프로토콜을 지원합니다. 기본 OpenSSL 라이브러리에 의존하십시오. 라이브러리가 잘못 활성화되거나 구성되지 않은 경우 Curl_version () 의 프로토콜 목록에 HTTPS가 포함되지 않습니다.
CURL이 설치 될 때 SSL 지원이 활성화되어 있는지 확인하십시오. phpinfo () 페이지를 확인하여 CURL 섹션을 찾아 SSL 지원이 활성화되어 있는지 확인할 수 있습니다.
SSL 지원이 활성화되지 않은 경우 PHP를 다시 컴파일 할 때 OpenSSL 지원을 활성화하도록 지정하거나 PHP의 컬 확장을 다시 설치하고 해당 기능이 활성화되어 있는지 확인할 수 있습니다.
curl_version () 함수는 올바른 버전 정보를 반환하지만 실제 CURL 요청 (예 : Curl_Exec () )는 여전히 성공적으로 실행될 수 없으며 연결 시간 초과 및 서버 제거와 같은 오류가 발생할 수 있습니다.
CURL 라이브러리의 특정 프로토콜 (예 : HTTP/2 또는 SSL)에 대한 지원이 부족하기 때문일 수 있습니다.
CURL 요청의 실행에 영향을 미치는 네트워크 구성, 프록시 설정, SSL 인증서 등과 같은 문제로 인한 것일 수 있습니다.
curl_version ()을 사용하여 자세한 프로토콜 지원 정보를 얻고 현재 환경이 필요한 프로토콜 (예 : HTTPS)을 지원하는지 확인하십시오.
프록시 설정이 CURL 요청의 실행에 영향을 미치는지 확인하십시오. 프록시는 curl_setopt ($ ch, curlopt_proxy, 'proxy_address')를 설정하여 구성 할 수 있습니다.
서버의 SSL 인증서 설정을 확인하여 인증서 만료 또는 확인 오류와 같은 문제가 없는지 확인하십시오. curl_setopt ($ ch, curlopt_ssl_verifypeer, false)를 설정하여 SSL 검증을 건너 뛸 수 있습니다 (제작 환경에서는 권장되지 않음).
네트워크 연결 문제가있는 경우 서버의 방화벽 설정을 확인하여 CURL이 대상 서버에 액세스 할 수 있는지 확인하십시오.