我的操作系统是linux Deepin2014.3, 64bit。采用的xampp-linux-x64-5.6.8-0-installer.run经过一系列配置,
安装的php,YII2.0框架,PHP版本高于5.4,调用这个命令的时候出问题了。
composer global require "fxp/composer-asset-plugin:1.0.0"
Changed current directory to /home/litianci/.composer ./composer.json has been updated 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 failedhttps://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of dateUpdating dependencies (including require-dev) Nothing to install or update Generating autoload files
看问题是SSL的验证问题,网上搜索了很久没有解决.
下面是来自某被墙的网页的快照。没办法,贴网址也无效。
经过原因查找,在验证证书的时候出现问题,是本地ssl判别证书太旧,导致报ssl证书错误
下载新的ssl本地判别文件
wget http://curl.haxx.se/ca/cacert.pem
并更名为ca-bundle.crt放置到默认目录。如果该目录不存在可以创建。
mv cacert.pem ca-bundle.crt | mv ca-bundle.crt /etc/pki/tls/certs/
或者curl –cacert cacert.pem 方式指定调用
然后无意中更改了一下xampp-linux-x64-5.6.8-0-installer.run为一个老的版本xampp-linux-x64-1.8.3-5-installer.run,竟然可以使用了,你不妨换换版本的。
我在deepin2014.3,64bit操作系统下测试成功解决该error.
借鉴 http://pkg.phpcomposer.com/ 。感谢分享。
修改~/.composer/config.json,添加
{ "repositories": [ {"type": "composer", "url": "http://pkg.phpcomposer.com/repo/packagist/"}, {"packagist": false} ]}
最终是这样子的。
{ "config": { }, "repositories": [ {"type": "composer", "url": "http://pkg.phpcomposer.com/repo/packagist/"}, {"packagist": false} ]}
最终测试可以使用。
参考:https://github.com/composer/composer/issues/3346
First: Check certificate file location which will be in default_cert_file key, you will found it in openssl_get_cert_locations() its php openssl function:
找到验证文件在哪里?
这个发现在
/opt/lampp/share/openssl/cert.pem
$ 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] => )
Second: Download http://curl.haxx.se/ca/cacert.pem:
$ wget http://curl.haxx.se/ca/cacert.pem
Third: Copy certificate PEM file into default_cert_file location:
$ sudo mv cacert.pem /opt/lampp/share/openssl/cert.pem
My php-cli is under XAMPP and default_cert_file maybe point to some place that is different than this.
Fourth:Restart xampp:
$ sudo /opt/lampp/xampp restart
I hope anything after that should goes fine with you brothers.