2017-07-31 97 views
0

我工作在Windows 10 WAMP 3.0.6(阿帕奇2.4.23,PHP 25年6月5日),當我嘗試運行composer update 它顯示與OpenSSL的錯誤:作曲家更新失敗,OpenSSL的錯誤

Loading composer repositories with package information 
The "https://packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages: 
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 
Failed to enable crypto 
failed to open stream: operation failed 
https://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date 
Updating dependencies (including require-dev) 

我已經在c:\ wamp \ bin \ php \ php5.6.25 \ php.ini中設置了openssl.cafile變量,並確認這個php.ini文件被CLI使用。

輸出的 php -r "var_dump(openssl_get_cert_locations());"

array(8) { 
    ["default_cert_file"]=> 
    string(25) "c:/usr/local/ssl/cert.pem" 
    ["default_cert_file_env"]=> 
    string(13) "SSL_CERT_FILE" 
    ["default_cert_dir"]=> 
    string(22) "c:/usr/local/ssl/certs" 
    ["default_cert_dir_env"]=> 
    string(12) "SSL_CERT_DIR" 
    ["default_private_dir"]=> 
    string(24) "c:/usr/local/ssl/private" 
    ["default_default_cert_area"]=> 
    string(16) "c:/usr/local/ssl" 
    ["ini_cafile"]=> 
    string(29) "c:/wamp/openssl/cacert.pem" 
    ["ini_capath"]=> 
    string(16) "c:/wamp/openssl/" 
} 

我從http://curl.haxx.se/ca/cacert.pem下載證書文件,並試圖將其放置到不同的位置:

c:/wamp/openssl/ 
c:/usr/local/ssl/certs 
c:/usr/local/ssl/cert.pem 

我試着重新安裝,甚至作曲家,利用getcomposer作曲家SETUP.EXE .org,但它以相同的錯誤結束。

我搜索了stackoverflow,並搜索了幾個小時,但任何可能的解決方案都沒有奏效。我究竟做錯了什麼 ?

+0

聽起來更像是證書本身的錯誤,而不是它在哪裏? https://stackoverflow.com/questions/17084886/ssl-error-routinesssl3-get-server-certificatecertificate-verify-failed – Andy

+0

[file \ _get \ _contents()的可能重複:SSL操作失敗,代碼爲1. [更多] (https://stackoverflow.com/questions/26148701/file-get-contents-ssl-operation-failed-with-code-1-and-more) – Nawin

回答

0

嘗試取消設置https_proxy使作曲家能夠工作!

+0

對於愚蠢的問題抱歉,但我必須取消設置https_proxy? – Jaimez

+0

here:'C:\ wamp \ htdocs \ myproject \> unset http_proxy' –

+0

這就是我得到的:'unset'不被識別爲內部或外部命令, 可操作的程序或批處理文件。 – Jaimez