Composer 常见问题

原文链接:Composer常见问题
安装了Composer后,运行 composer --version,查看Composer的版本号。如果出现下面的提示,那么软件安装成功。

Composer version 1.2.0 2016-07-19 01:28:52

若想给某个项目添加类似monolog的第三方库,则按下面的步骤操作:

新建 composer.json 文件,添加内容:

 {
       "require": {
         "monolog/monolog": "1.20.0"
       },
       "repositories": {
         "packagist": {
           "type": "composer",
           "url": "https://packagist.phpcomposer.com"    // Mirror site in China.
         }
       }
 }

以命令行方式打开项目的根目录,输入命令:composer install

正常情况下,一切顺利,执行完上述命令就能够成功导入 monolog 库到项目中。但是,现实与想象总是有段距离,上面只是走完了“长征”路程的一半,还有“雪山”要翻、“草地”要过呢!

执行完命令:composer install 后,并不会像期待那样地导入依赖,而是抛出异常。

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.

这段异常日志的大致意思是,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-dir
extension_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:\php-5.6.24\verify 目录中),可以从 https://curl.haxx.se/docs/caextract.html 处下载。

接下来,定位到

;openssl.cafile= 

和上面一样,删去分号,取消注释,设置CA证书为 openssl.cafile= C:\php-5.6.24\verify\cacert.pem

最后, 重新在命令行窗口中打开项目的根目录,执行命令:composer install,等待几分钟后,就可以成功添加 monolog 依赖。


如无特别声明,该文章均为 现在网NowTime.cc)原创,转载请遵循 署名-非商业性使用 4.0 国际(CC BY-NC 4.0) 协议,即转载请注明文章来源。


标签: PHP, Composer

赞 (0)

添加新评论