Composer 是 PHP5以上 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。
安装好Composer时通过composer install,发现没有正常安装,而是提示:
[ComposerExceptionNoSslException] The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error , at your own risk, by setting the 'disable-tls' option to true.
对于这个问题,我尝试使用下面的命令解决:
composer global require "fxp/composer-asset-plugin:~1.3" 全局前端资源 composer config -g repo.packagist composer https://packagist.laravel-china.org 设置全局为 国内源 composer config -g -- disable-tls true 关闭ssl php7 /usr/local/bin/composer config -g -- disable-tls true
然而出现了另外的问题:
[ComposerDownloaderTransportException] Your configuration does not allow connections to http://packagist.org/packages.json. See https://getcomposer.org/doc/06-config.md#secure-http for details.
所以需要再次进行设置,禁用SSL
composer config secure-http false composer config -g secure-http false
之后,一部分可以正常安装了,还有一部分提示超过300stimeout,所以对时间进行设置:
增加COMPOSER_PROCESS_TIMEOUT,通过命令composer config --list看到默认是300s,然后通过命令composer config -g process-timeout 600增加COMPOSER_PROCESS_TIMEOUT至600s。
至此,Composer能够正常运行。
也就是说你可以通过启用openssl扩展或者把disable-tls这个配置项设置成true来解决这个问题;
一、首先启用openssl这个扩展,找到你的php.ini,
找到extension=php_openssl.dll这配置项,把前面的分号去掉,保存退出,重启php;
看看你的phpinfo() openssl 是否是enable开启状态;
使用composer命令试试,如果不行使用第二种方法;
二、将“disable-tls”选项设置为true
命令:composer config -g -- disable-tls true
命令如果不好用直接去改配置文件,把这项改成true
使用composer命令试试,一般这个时候是ok的了;
三、巨坑
我自己的服务器还是用不了,当我使用php -m查看我的拓展的时候,发现我的包里这个拓展竟然丢失了。。。没有这个拓展我phpinfo里openssl竟然是开启状态。。。
解决方案:装上这个拓展或者重装php
到这composer命令可以正常使用了