Php 从PackageGist更新时编写器更新失败
在执行composer安装/更新时,我从openssl收到以下错误: 无法下载“”文件:SSL操作失败,代码为1。OpenSSL错误消息: 错误:14090086:SSL例程:SSL3\u获取\u服务器\u证书:证书验证失败 无法启用加密 无法打开流:操作失败 无法完全加载,包信息是从本地缓存加载的,可能已过期 我正在使用:Php 从PackageGist更新时编写器更新失败,php,openssl,xampp,composer-php,php-5.6,Php,Openssl,Xampp,Composer Php,Php 5.6,在执行composer安装/更新时,我从openssl收到以下错误: 无法下载“”文件:SSL操作失败,代码为1。OpenSSL错误消息: 错误:14090086:SSL例程:SSL3\u获取\u服务器\u证书:证书验证失败 无法启用加密 无法打开流:操作失败 无法完全加载,包信息是从本地缓存加载的,可能已过期 我正在使用: PHP 5.6.3(cli)(构建日期:2014年11月17日15:16:53) XAMPP堆栈5.6.3-0 ubuntu 14.04 composer diag显示:
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity: FAIL
[Composer\Downloader\TransportException] 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
Checking disk free space: OK
Checking composer version:
[Composer\Downloader\TransportException]无法下载“”文件:SSL操作失败,代码为1。OpenSSL错误消息:
错误:14090086:SSL例程:SSL3\u获取\u服务器\u证书:证书验证失败
无法启用加密
无法打开流:操作失败 php-r'var_dump(openssl_get_cert_locations());'显示:
array(8) {
["default_cert_file"]=>
string(33) "/opt/lampp/share/openssl/cert.pem"
["default_cert_file_env"]=>
string(13) "SSL_CERT_FILE"
["default_cert_dir"]=>
string(30) "/opt/lampp/share/openssl/certs"
["default_cert_dir_env"]=>
string(12) "SSL_CERT_DIR"
["default_private_dir"]=>
string(32) "/opt/lampp/share/openssl/private"
["default_default_cert_area"]=>
string(24) "/opt/lampp/share/openssl"
["ini_cafile"]=>
string(0) ""
["ini_capath"]=>
string(0) ""
}
对于PHP5.5.19,一切正常。我找到了解决方案 我在跑步:
FreeBSD 10.1
Apache2.4
PHP 5.6.3 为了找到CA文件,我运行了以下命令
>找到cacert.pem
结果是:/usr/local/lib/perl5/site_perl/5.16/Mozilla/CA/cacert.pem 然后打开php.ini文件并
更改此项: );openssl.cafile= 为此: openssl.cafile=/usr/local/lib/perl5/site_perl/5.16/Mozilla/CA/cacert.pem 注意:此指令仅在PHP5.6.x上可用
然后重新启动Apache将openssl.cafile添加到php.ini对我来说也很有效。 我没有查找证书文件,而是直接下载了它: curl>cacert.pem
然后将openssl.cafile设置指向它。通过将SSL证书添加到XAMPP证书文件夹,我解决了SSL错误的问题
// navigate to a directory to save the certificate
cd /Downloads
// download a certificate
wget http://curl.haxx.se/ca/cacert.pem
// rename and move the file to the Xampp certificates folder
mv cacert.pem /Applications/XAMPP/xamppfiles/share/openssl/cert.pem
别忘了重新启动apache 在使用XAMPP的mac上:
cd/Applications/XAMPP/xamppfiles/share/openssl
sudo curl-O-khttp://curl.haxx.se/ca/cacert.pem
sudo mv cacert.pem cert.pem
停止并重新启动Apache首先:检查将位于
默认证书文件
密钥中的证书文件位置,您将在openssl\u get\u cert\u locations()中找到它。
它是一个php openssl函数。您可以按如下方式运行它:
$ php -r "print_r(openssl_get_cert_locations());"
我的系统中的输出
Array
(
[default_cert_file] => /opt/lampp/share/openssl/cert.pem
[default_cert_file_env] => SSL_CERT_FILE
[default_cert_dir] => /opt/lampp/share/openssl/certs
[default_cert_dir_env] => SSL_CERT_DIR
[default_private_dir] => /opt/lampp/share/openssl/private
[default_default_cert_area] => /opt/lampp/share/openssl
[ini_cafile] =>
[ini_capath] =>
)
秒:下载:
第三个:将certificate.pem
文件复制到默认证书文件
位置:
$ sudo mv cacert.pem /opt/lampp/share/openssl/cert.pem
openssl.cafile=/Users/me/.composer/cacert.pem
**从**
找到cacert.pem
vi/usr/local/lib/php.ini
#加上这个
openssl.cafile=/usr/local/share/perl5/Mozilla/CA/cacert.pem
#按esc键,然后键入
:wq#输入
旋度-sShttps://getcomposer.org/installer |php--version=1.0.0-alpha10
mv composer.phar/usr/local/bin/composer
别名编写器='/usr/local/bin/composer'
作曲家-V
php/usr/local/bin/composer全局自更新
cd作曲家/
composer init
我正在使用Mac OS Sierra,当我试图使用命令更新composer时,/usr/local/bin/composer self update
我不断收到错误:
[Composer\Downloader\TransportException]
The "https://getcomposer.org/version" file could not be downloaded: SSL operation failed with co
de 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
我通过以下步骤修复了它:
1) 使用以下命令创建本地数据库:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
2) 找到证书文件:
locate cacert.pem
3) 检查php.ini文件的位置:
php --ini
4) 如果php.ini
文件的“已加载配置文件”显示为(无)
,请将文件/etc/php.ini.default
复制到/etc/php.ini
:
sudo cp /etc/php.ini.default /etc/php.ini
5) 打开php.ini
文件并编辑;openssl.cafile=
行,取消注释并将链接附加到证书文件位置:
$ sudo mv cacert.pem /opt/lampp/share/openssl/cert.pem
openssl.cafile=/Users/me/.composer/cacert.pem
就这样。现在,当您运行composer更新时,它将正常工作。对于我们来说,这个问题似乎只影响到我们的一个私有存储库。它可能与证书或公司防火墙有关,但它似乎是间歇性的,因此我们无法在找到不同的修复之前进行确认 在composer.json内部,我们将存储库URL从https更改为ssh变体,并添加了
“无api”:true
选项:
"repositories": [
{
"type": "vcs",
"url": "git@github.com:our-user/our-repo.git",
"no-api": true
}
]
通过该编辑,composer更新/安装操作能够成功完成
composer clearcache
当我遇到错误时,这对我有效:
无法完全加载,包信息是从本地缓存加载的,可能已过期
即使在添加了最新下载的有效证书之后,我在Windows上也遇到了同样的问题。我在proxy后面运行composer,所以我必须添加环境变量http\u proxy和https\u proxy 我的环境: PHP 5.6.33 Windows 7 64位 作曲家版本1.6.3 2018-01-31 16:28:17 我下载了最新的证书并在php.ini中更新了以下路径,但仍然无法运行
curl.cainfo = C:\Certificates\ca-bundle.crt
openssl.cafile= C:\Certificates\ca-bundle.crt
openssl.capath=C:\Certificates
然后执行以下步骤
1) 打开chrome浏览器并导航
2) 单击小安全锁图标
3) 点击有效证书
4) 打开证书路径选项卡,您将看到以下路径级别
5) 需要导出图像中标记的1和2的证书
6) 要导出证书,请单击“查看证书”,转到“详细信息”选项卡,然后单击“复制到文件”
7) 选择Base64编码
8) 单击Next并将该文件保存到一个位置,对SETP4中所示的编号(2)执行此操作
9) 打开.cer文件并将内容复制到用于在php.ini中配置的.crt文件的末尾
然后试着运行comport安装-它对我有用
若您看到composer在通过代理访问站点时抛出ssl错误,则该过程应该是相同的。1
php -r "print_r(openssl_get_cert_locations());"
2.vim php.ini
[openssl]
openssl.cafile=/usr/local/etc/openssl/cert.pem
只需将此配置添加到composer.json文件中
"config": {
"secure-http": false
}
下面是一个工作composer.json文件的完整示例
"repositories": [{
"type": "composer",
"url": "http://packagist.org"
}],
"require": {
"phpmailer/phpmailer": "^6.0"
},
"config": {
"secure-http": false
}
}
```
请探讨此问题:如果您使用的是卡巴斯基,请检查此项:如果您无法找到您的cacert.pem文件副本,请检查其av