Composer安装失败

时间:2018-01-13 16:37:41

标签: php curl composer-php failed-installation

我正在尝试使用Ubuntu 16.04在我的PHP version 5.6.*中安装作曲家。

我用过:curl -sS https://getcomposer.org/installer | php。但它给我的错误如下:

All settings correct for using Composer
Downloading...
The "https://getcomposer.org/versions" file could not be downloaded: failed to open stream: Connection refused
Retrying...
The "https://getcomposer.org/versions" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
Retrying...
The "https://getcomposer.org/versions" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
The download failed repeatedly, aborting.

我之前没有安装过composer。

6 个答案:

答案 0 :(得分:2)

我通过下载https://curl.haxx.se/ca/cacert.pem并在etc/php/5.6/cli/php.inietc/php/5.6/apache2/php.ini中提供了该路径来解决了这个问题。

然后在运行sudo service apache2 restart && sudo apt install composer后工作正常。

答案 1 :(得分:1)

看起来主机上的PHP / openssl配置错误。

我的工作站是Ubuntu 16.04.3,php 7.0.22和openssl-1.0.2g - 安装程序工作正常。

尝试禁用TLS:

curl -sS https://getcomposer.org/installer | php -- --disable-tls

答案 2 :(得分:0)

这是由我的卡巴斯基互联网安全引起的 我通过禁用KIS临时来修复它

您可以尝试一下。

答案 3 :(得分:0)

打开终端并运行php -r "var_dump(openssl_get_cert_locations());"

请注意default_cert_file的位置。可能会说\usr\local\ssl\cert.pem 验证该文件存在。如果没有,请从https://curl.haxx.se/ca/cacert.pem下载cacert.pem文件,并将其放置在/usr/local/ssl

中的某个位置。

您现在拥有的文件是usr/local/ssl/cacert.pem

打开您的php.ini并添加文件openssl.cafile=cacert.pem

的位置

安装作曲家

运行composer config --global cafile "/usr/local/ssl/cacert.pem"

答案 4 :(得分:0)

我不小心清空了以下文件的内容后,在使用Laravel Homestead时遇到了这个问题:/etc/ssl/certs/ca-certificates.crt

为我修复的问题是:

sudo apt-get purge ca-certificates 
sudo apt-get install ca-certificates

感谢https://stackoverflow.com/a/53351370/470749

答案 5 :(得分:0)

将导出代理从https更改为http

打开终端

    echo $https_proxy
// Change export proxy from 
    https_proxy=https://192.168.0.10:8080/
// to 
   https_proxy=http://192.168.0.10:8080/

cmd :: https_proxy=http://192.168.0.10:8080/