web-dev-qa-db-ja.com

libcurlでプロトコルhttpsがサポートされていないか無効になっている

私は自分のアプリケーション(OSCOMMERCEにあります)でAuthorize.netを使用しています。ユーザーが支払いを行うと、空の応答が返されます。私はデバッグし、それがこのエラーを返すことがわかりました:

Libcurlでプロトコルhttpsがサポートされていないか無効になっている

Httpsで始まるプローバーURLを送信していますが、スペースはありません https://secure.authorize.net/gateway/transact.dll

共有ホスティングサーバーのアプリケーション。私の疑問はこれがサーバー側の問題またはプログラミングの問題ですか?

16
AnNaMaLaI

Info.phpというスクリプトを作成し、その中に<?php phpinfo(); ?>を挿入します。ブラウザからアクセスできるように、サイトのどこかに保存します。

curlセクションを見つけ、サポートされているProtocolsを確認します。 httpsがリストされていない場合、cURLはSSLサポート付きで構築されておらず、httpsを使用できません。

_Registered PHP Streams_の最初のセクションを調べて、httpsがリストされているかどうかを確認することもできます。その場合は、フォールバックして、PHPのソケット関数またはfile_get_contents()fopenなどの関数を context で使用できます。

共有ホストを使用しているとのことですので、ホストに再コンパイルを依頼してくださいPHPこれにより、PHPとcurlの両方がOpenSSLサポートで構築され、暗号化を使用できるようになりますそうでなければ、別の解決策を見つける必要があります。

8
drew010

Httpsをサポートしているものの、以下のようなエラーが発生する場合

[curl] 1: Protocol %20https not supported or disabled in libcurl [url] %20https://www.example.com/%20

URLが有効であることを確認してください

  • https://www.example.com などの基本的なURLを試してください
  • URLを確認し、URLの先頭/末尾にスペースがないことを確認してください(上記の%20のように)
  • URLの文字がカールリクエストを壊す可能性があるかどうかを確認します
26
Carlton

私はこの問題を抱えていましたが、それはURLのスペースが原因でした:

' https://www.google.com/recaptcha/api/siteverify'

ご覧の通り、httpsの前にスペースがあります

24
parastoo amini