我正在尝试使用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。
答案 0 :(得分:2)
我通过下载https://curl.haxx.se/ca/cacert.pem并在etc/php/5.6/cli/php.ini
和etc/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
答案 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/