我想在PHP中使用常量CURL_SSLVERSION_TLSv1_2
,但是我得到一個錯誤,表明這樣的常量不存在。在PHP中缺少一些CURL常量
我查了一下PHP手冊(http://php.net/manual/en/curl.constants.php)和它說,不變的是可用,因爲PHP 5.5.19和5.6.3
這是PHP /捲曲版本的輸出我的本地機器,其中恆作品罰款
$ php -v
PHP 5.6.17-4+deb.sury.org~trusty+1 (cli)
$ php -i | grep -i curl
Additional .ini files parsed => /etc/php/5.6/cli/conf.d/20-curl.ini,
curl
cURL support => enabled
cURL Information => 7.35.0
$ php -r var_dump(defined('CURL_SSLVERSION_TLSv1_2')); var_dump(CURL_SSLVERSION_TLSv1_2);
bool(true)
int(6)
而且在哪裏我試圖運行該腳本的服務器,它是這樣的:
$ php -v
PHP 5.6.18 (cli) (built: Feb 4 2016 09:31:59)
$ php -i | grep -i curl
/etc/php.d/20-curl.ini,
curl
cURL support => enabled
cURL Information => 7.19.7
$ php -r "var_dump(defined('CURL_SSLVERSION_TLSv1_2')); var_dump(CURL_SSLVERSION_TLSv1_2);"
bool(false)
PHP Notice: Use of undefined constant CURL_SSLVERSION_TLSv1_2 - assumed 'CURL_SSLVERSION_TLSv1_2' in Command line code on line 1
string(23) "CURL_SSLVERSION_TLSv1_2"
你可以看到,我有PHP 5.6.8,根據PHP手冊應該有這個常量,但是cURL擴展比我的本地更老。
難道這是缺少常數的原因嗎?我可以更新PHP的cURL擴展嗎?或者有什麼其他原因可能會失蹤?
其他舊常量,如CURL_SSLVERSION_TLSv1
在兩臺服務器上都很好。
檢查OpenSSL版本(TLS v1.2至少需要1.0.1)。 –
在cURL的7.34.0中添加了常量'CURL_SSLVERSION_TLSv1_2'。 https://curl.haxx.se/libcurl/c/CURLOPT_SSLVERSION.html檢查您是否可以通過常規存儲庫更新進行升級。 –
謝謝,這是問題,在我們的服務器上,我們無法從官方存儲庫升級curl,因此我們需要等待更新,但我們最終使用了「6」,這是該常量的值。如果將此添加爲回答,我會接受它:) – boobiq