2017-03-15 9 views
2

私は現在、同じサーバー上で自分のAPIにajax呼び出しを行うプロジェクトに取り組んでいます。 cURLのが突然が何らかの理由なしを動作を停止し、それが次のエラーを私にPHP cURLが突然何の理由もなく動作しない

Protocol https not supported or disabled in libcurl 

を与えている。しかし、それは以前働いていただけので、それがどんな意味を成していない場合は、すべてのは、数時間前までは良いと罰金行ってきました私は変更の事は、私はすでにPHPをチェックし、サーバーを再起動し、apache2の再起動しました

dpkg-reconfigure tzdata 
[php.ini] date.timezone = "Europe/Berlin"; 

と「ヨーロッパ/ベルリン」のデフォルトからのログイン画面で何か(のみPHP)と、サーバー上のタイムゾーンでした.iniファイルと私のphpinfo、それはまったく同じですエラーや変更はありませんが、カールしても機能しません。私は他のホスト& localhostをカールしようとしましたが、何も動作しません。私は/ var/mail/rootもチェックしましたが、エラーはありません。

私は

を使用していますカールコードです
  • フルルートアクセス何らかの制限
  • なしシマンテック社の私のサーバー

    • Debianの8
    • SSL証明書へ

      少数情報

      $ch = curl_init(); 
          curl_setopt($ch, CURLOPT_URL, $this->url); 
      
          curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
      
          curl_setopt($ch, CURLOPT_POST, count($params)); 
          curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 
      
          session_write_close(); 
          $result = curl_exec($ch); 
          curl_close($ch); 
          session_start(); 
      

      私が言ったように、それはうまく働き、1か月以上の間問題なしでした。それは私が今まで見た中で最も奇妙なことです。私は誰かが私を助けることを願っています。 そうでない場合、カールの良い選択肢はありますか? (POSTリクエスト)

      ありがとうございます!問題を作ったことができるもの

    +0

    可能な複製http://stackoverflow.com/questions/9595820/protocol-https-not-supported-or-disabled-in-libcurl – k0pernikus

    +1

    Esp。 http://stackoverflow.com/a/28220576/457268 URLをビルドした方法が変更された可能性があります。 – k0pernikus

    +0

    'プロトコルhttpsがlibcurlでサポートされていないか無効になっています.'これは、' libcurl'が 'https'をサポートせずにインストールされたことを意味します。この投稿を参照してくださいhttp://stackoverflow.com/questions/19015282/how-do-i-enable-https-support-in-libcurl – Ahmad

    答えて

    2

    ご協力いただきありがとうございますが、エラーが見つかりました。 問題は次のとおりです。

    curlリンクフォルダ/ファイルがライブラリフォルダに存在しないため、httpsプロトコルでは機能しませんでした。

    curl: /usr/local/lib/libcurl.so.4: no version information available (required by curl) 
    

    YESの場合、/usr/local/libに移動し、両方libcurlリンク/ファイルを削除:カールはあなたのために働いていない場合は、次のエラーを取得する場合curl --versionに確認してください。これは私の問題を解決しました。その後、apache2を再起動するだけで、再び動作するはずです。

    これは私の問題を解決しただけであり、グローバルな解決の問題ではないことに注意してください。したがって、あなたがあなたのサーバー上で削除するものに注意してください。常にバックアップを作成してください!

    0

    ことの一つは、次のように定義する

    curl_setopt($ch, CURLOPT_POST, count($params));

    てみてくださいされています。ここでは

    curl_setopt($ch, CURLOPT_POST, true);

    は私にとって素晴らしい作品何1つのセットアップです:

    $default = array(
          CURLOPT_POSTFIELDS  => http_build_query($data), 
          CURLOPT_POST   => true, 
          CURLOPT_RETURNTRANSFER => true, 
          CURLOPT_CONNECTTIMEOUT => 10, 
          CURLOPT_TIMEOUT   => 10, 
          CURLOPT_SSL_VERIFYPEER => false, 
          CURLOPT_HTTPHEADER  => array('Accept: application/json') 
         ); 
    
         $ch = curl_init($url); 
          curl_setopt_array($ch, $options); 
          $output=curl_exec($ch);  
         curl_close($ch); 
    

    しかし、これに注意してください:01この例では、はJSONを受け入れる設定です。

    また、http_build_queryは、投稿データ内の解析問題を修正できます。使用することは重要ではありませんが、助けることができます。

    +0

    残念ながら、これはうまくいきません。 'POST APIHandle.php 500(内部サーバーエラー)' – iMostLiked

    +0

    あなたがCURLを介して訪問したファイルに問題があります.CURL内ではありません。 error.logの内部を見てください –

    +1

    なぜ 'curl_setopt($ ch、CURLOPT_POST、count($ params))'が問題になるのかを知るために、そのオプションは数値フィールドではなくブールフィールドを参照します。 –

    関連する問題