composer的常见问题
安装了Composer后,运行composer --version,查看Composer的版本号。如果出现提示,那么软件安装成功。
安装类库时抛出如下异常:
<code>
The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl exension, you can disable this error, at your own risk, by setting the ‘disable-tls’ option to true.
</code>
这段异常日志的大致意思是,Composer采用SSL连接,需要外挂OpenSSL插件。
要消除这个异常,有两种解决方式,一是放弃SSL连接、直接“裸奔”;二是启用OpenSSL。
取消SSL连接的命令是
composer config -g -- disable-tls true
然而并没有什么卵用,试过之后,又抛出了新的异常。
剩下来的方案就是尝试启用OpenSSL。安装了PHP后,安装目录(类似C:\php-5.6.24)中包含两个文件,一个是php.ini-development,另一个是php.ini-production,选择将其中任意的一个文件重命名为php.ini,用作PHP的默认配置文件。通过修改配置文件来启用OpenSSL插件。
编辑php.ini文件,首先,定位到:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/
extension-dirextension_dir = "./"
; On windows:
extension_dir = "ext"
删除extension_dir = "./"和extension_dir = "ext"前面的分号,取消注释这两行代码,配置PHP插件目录为./ext。
然后,定位到:
;extension=php_mysqli.dll;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
删除extension=php_openssl.dll前面的分号,取消注释,从而启用OpenSSL插件。
注意:因为SSL连接需要认证,所以继续下面的步骤之前,需要准备好CA证书(建议把证书保存到C:\php7.0\verify
目录中),可以从 https://curl.haxx.se/docs/caextract.html 处下载。
接下来,定位到
;openssl.cafile=
和上面一样,删去分号,取消注释,设置CA证书为:
openssl.cafile= C:\php7.04\verify\cacert.pem
。
最后, 重新在命令行窗口中打开项目的根目录,执行命令:composer install