cURL - Protokoll https nicht unterstützt oder deaktiviert libcurl (nach PHP-update)
Ich weiß, es gibt Dutzende von Fragen über dieses Thema, aber die üblichen Vorschläge nicht wirklich, es scheint zu helfen. Ich habe den server unter dem root-account und dem speziellen account, mit dem ich arbeite und in beiden Fällen (wenn Sie auch unterschiedlich sein können) SSL ist aufgeführt, wie eine Funktion und HTTPS als Protokoll.
Mein cURL-Funktionen arbeiteten einwandfrei, bis gestern, als wir ein Upgrade von PHP ~5.1/5.2 5.4.26. Meine Vermutung war, dass PHP und/oder cURL kompiliert wurden ohne SSL-Unterstützung, aber das scheint nicht der Fall zu sein.
Wenn es hilft, die Funktionen aufrufen, Appcelerator cloud services. Dies ist einer der die login-Funktionen, die ersten zu werfen, die "trying to get property of non-object" - Fehler, weil $res
falsch ist:
function login() {
$url = 'https://api.cloud.appcelerator.com/v1/users/login.json?key=<MY_APP_KEY>';
$options = array(
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => array(
'login' => '<MY_APP_LOGIN>',
'password' => '<MY_APP_PASSWORD>'
)
);
$curl_session = curl_init($url);
curl_setopt_array($curl_session, $options);
$res = curl_exec($curl_session);
curl_close($curl_session);
$this->session_id = json_decode($res)->meta->session_id;
}
Ist es möglich, dass obwohl SSL und HTTPS aufgeführt sind, dass Sie nicht tatsächlich in Kraft? Gibt es eine Möglichkeit zu prüfen und ggf. zu beheben?
CURLOPT_SSL_VERIFYPEER
/ CURLOPT_SSL_VERIFYHOST
Optionen false
Keine änderung.
Sie sagen: "SSL ist aufgeführt, wie eine Funktion und HTTPS als Protokoll ein.", aber wie hast du das genau? Für mich klingt es wie Sie überprüft, für etwas anderes als das, was bewirkt, dass Ihr code fehlschlägt.
SSH für root-server: -bash-3.2# curl-config --feature-SSL-IPv6-libz IDN NTLM -bash-3.2# curl-config --Protokolle-HTTP-HTTPS-FTP-FTPS-DATEI TELNET DICT LDAP, TFTP
InformationsquelleAutor Bobe | 2014-03-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eines der möglichen Probleme ist, dass Sie mehr als eine libcurl-version auf Ihrem Computer installiert ist, so dass Ihre Prüfung als root gibt die info über eine Globale installation, während Sie Ihre PHP-Umgebung läuft eine andere version.
In Ihrem PHP-Programm können Sie stattdessen curl_version() und sehen, was es sagt über SSL-Unterstützung und-Versionen etc..
Nein, es ist die libcurl-version von PHP verwendet, muss gebaut werden mit SSL-Unterstützung. Sie sollten wahrscheinlich versuchen, stellen Sie sicher, dass Sie die einzigen und nur libcurl installieren und haben, dass die Verwendung von SSL...
Yep, sieht aus wie wir haben werde, um wieder aufzubauen Apache. Danke.
InformationsquelleAutor Daniel Stenberg