composer是PHP中非常优秀的一个包管理工具,可以帮助我们来管理项目所需要依赖的所有包以及插件,也可以用来从packagist中创建一个项目。但是在初次使用中会出现各种各样的问题,现我将别的开发人员问过我的的关于composer的错误以及解决办法整理如下,希望能够帮大家跳坑:
错误问题一Failed to decode response: zlib_decode(): data error
Retrying with degraded mode. check https://……
导致这个错误的原因一般是网络的原因。因为上边执行的语句:
composer global require "fxp/composer-asset-plugin:^1.2.0"
在请求将yii2的项目安装插件安装到全局是出现这个问题。composer页提供了一个degraded模式的解决方法。如果我们开启了ipv6则需要将IPv6取消勾选。
如果使用该方法也无法处理那么就需要使用composer中文全量镜像或其他VPN的方式。
错误问题二The ““file could not be downloaded:
php_network_getaddresses: getaddrinfo failed: 不知道这样的主机。
failed to open stream: php_network_getaddresses: getaddrinfo failed: 不知道这样的主机
这也是比较经典的一个问题这时因为在安装composer时其实还是需要从composer的官方网站下载composer.phar所以如果你的网站无法访问国外网站那么久会有问题。当然你可以直接下载composer.phar来使用,前提是要将PHP加入到环境变量中。
错误问题三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 you own risk, by setting the ‘disable-tls' option to true
这个算是一个比较经典的错误了。错误很明显是因为没有开启php_openssl打开方法为
找到你的php.ini文件找到
;extension=php_openssl.dll
把前边的分号(;)删除。当然如果这样做了还没有生效有可能是你的电脑中安装了多个php那么就需要在环境变量中查看下写在path中的PHP路径在那儿。找到路径中的php.ini按照上述过程修改。
错误问题四-yiisoft/yii2 2.0.10 requires ext-mbstring * -> the requested PHP extension mbstring is missed
这个错误也是经常会犯的错误。是因为composer安装yii2时需要mbstring这个处理多字节字符串的扩展。开启方法和上一个问题一样,删除php_mbstring.dll前的分号
;extension=php_mbstring.dll
当然如果没有生效还是要去看看系统环境变量中的PHP路径是哪个。
错误问题五Content-Length mismatch
导致这个问题的主要原因还是网络的原因让请求的数据不完整导致的。正确的做法是使用中文镜像库或者vpn。
中文镜像使用办法使用中文镜像基本能解决以上所有问题(除composer的安装),也是非常非常需要的。
使用办法在composer安装好后打开命令行工具执行以下的语句:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
这样会去中文全量镜像https://packagist.phpcomposer.com中去请求包以及插件的下载安装。