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環境でCurl拡張機能が有効になっていない場合に発生します。 PHPの組み込みのCurlライブラリはオプションの拡張機能であり、インストールまたは有効化されていない場合、 curl_version()関数は使用されません。
PHPでCurl拡張機能が有効になっていることを確認してください。端末で次のコマンドを実行して、Curl拡張子がリストされているかどうかを確認します。
<span><span>php -m | grep curl
</span></span>出力がない場合、Curl拡張機能は有効になりません。
カール拡張機能を有効にします:
Linuxシステムの場合、次のコマンドを使用してCurl拡張機能をインストールできます。
<span><span>sudo apt-get install php-curl
</span></span>または:
<span><span>sudo yum install php-curl
</span></span>Windowsシステムの場合、Line Extension = curlがphp.iniファイルにコメントアウトされていないことを確認してください。コメントがある場合(以前はセミコロンを使用しています; )、コメントを削除してWebサーバーを再起動する必要があります。
インストールと有効化後、PHPやWebサーバー(ApacheやNginxなど)を再起動し、 Curl_version()関数を再度呼び出してみてください。
curl_version()関数が呼び出されると、返された結果はnullであり、有用な情報はありません。これは通常、Curl拡張機能が適切にインストールまたは構成されていない場合に発生します。
curl_version()関数は、適切にインストールされたCurl拡張機能に依存します。 Curl拡張機能が完全にインストールされていないか、誤って構成されている場合、 NULLが戻ってくる可能性があります。
もう1つの考えられる理由は、PHPバージョンとCurl拡張機能の互換性です。
Curl拡張機能が正しくインストールされ、有効になっていることを確認してください。上記の手順を参照して、CurlがPHPで有効かどうかを確認してください。
PHPおよびCurl拡張機能のバージョンが互換性があるかどうかを確認してください。 PHPの古いバージョンを使用している場合は、PHPをアップグレードするか、そのバージョンと互換性のあるCurl拡張機能を使用する必要があります。
curl_version()が呼び出されたときに返されるバージョン情報は、SSLやその他の輸送プロトコルのサポートの欠如など、不完全です。
Curlの機能は、コンパイル時間構成オプションに依存します。特定の機能(SSL、IPv6、HTTP2など)がPHPをコンパイルするときに有効になっていない場合、 curl_version()によって返される情報には対応するサポートがない場合があります。
PHP、特にCurl拡張機能のSSLサポートをコンパイルするときに、必要な機能が有効になっていることを確認してください。 phpinfo()の出力をチェックすることで確認できます。
PHP環境に特定の機能が有効になっていない場合は、PHPを再コンパイルして関連するオプションを有効にするか、すべての機能をサポートするPHPディストリビューションを選択することを検討してください。
Curl_version()を使用してCurlバージョン情報を取得すると、プロトコルリストにHTTPSプロトコルがないことがわかりました。その結果、HTTPSリクエストを実行しようとすると失敗します。
この問題は通常、PHPのCURL拡張がSSLまたはHTTPSプロトコルを適切にサポートしていない場合に発生します。 CurlはHTTPSプロトコルをサポートします。基礎となるOpenSSLライブラリに頼ってください。ライブラリが有効または誤って構成されていない場合、 httpsはcurl_version()のプロトコルリストに含まれません。
CurlがインストールされているときにSSLサポートが有効になっていることを確認してください。 phpinfo()ページを確認して、Curlセクションを見つけて、 SSLサポートが有効かどうかを確認できます。
SSLサポートが有効になっていない場合、PHPを再コンパイルするときにOpenSSLサポートを有効にするように指定するか、PHPのCURL拡張機能を再インストールし、対応する機能が有効になっていることを確認できます。
curl_version()関数は正しいバージョン情報を返しますが、実際のcurl要求( curl_exec()など)はまだ正常に実行できず、接続タイムアウトやサーバー拒否などのエラーが発生する可能性があります。
これは、Curlライブラリの特定のプロトコル(HTTP/2やSSLなど)のサポートがないためである可能性があります。
これは、ネットワーク構成、プロキシ設定、SSL証明書などの問題が原因である可能性があります。これは、CURL要求の実行に影響します。
Curl_version()を使用して、詳細なプロトコルサポート情報を取得し、現在の環境が必要なプロトコル(HTTPSなど)をサポートするかどうかを確認します。
プロキシ設定がCURL要求の実行に影響するかどうかを確認します。プロキシは、curl_setopt($ ch、curlopt_proxy、 'proxy_address')を設定して構成できます。
サーバーのSSL証明書設定を確認して、証明書の有効期限や検証エラーなどの問題がないことを確認してください。 SSL検証は、curl_setopt($ ch、curlopt_ssl_verifypeer、false)を設定することでスキップできます(生産環境では推奨されません)。
ネットワーク接続の問題がある場合は、サーバーのファイアウォール設定をチェックして、CURLがターゲットサーバーにアクセスできることを確認します。