Ourren

关注技术,记录生活.

解决composer的ssl证书问题

| 留言

作为PHP深度开发者,composer的出现可以说解决了大家的环境配置成本、代码共享方式和代码更新问题,现在的大部分的PHP框架如laravelyii2 都采用composer的包管理机制,可以让开发者快速安装插件。

最近遇到的主要问题是执行composer更新命令遇到如下错误:

composer self-update

[Composer\Downloader\TransportException]
The "https://getcomposer.org/version" 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

其实你要是把这个错误信息放在网上一搜,结果发现一堆这种问题,但是问题的关键是这些问题都没有给出解决方案,比较靠谱的回答有如下几种:

  1. 证书出现问题,去更新下你的证书信息;
  2. 网络问题,自己看下是不是被欺骗了;
  3. …….

Google出来很多答案,就连stackoverflow都有很多问题和答案,但是问题的关键这些答案都不能解决问题,通过自己的研究发现目前Mac安装的PHP版本是5.3版本的,感觉应该是openssl爆出漏洞后导致证书不可信,所以直接升级PHP版本应该就可以,那就可以直接执行如下命令:

brew install php56

请注意,make的时候cpu飙到99%是正常的,稍微等几分钟就好了,然后执行更新:

composer update

Your requirements could not be resolved to an installable set of packages.

这个问题就更好解决了,修改当前工程的composer.json中的:

"minimum-stability": "stable",

改为:

"minimum-stability": "dev",
"prefer-stable": true,

顺利解决问题~