yii2 composer的异常处理

第九章 部分异常的处理

1、composer的异常

  Fatal error: Call to undefined method Fxp\Composer\AssetPlugin\Package\Version\VersionParser::parseLinks()

参考这里:https://github.com/francoispluchino/composer-asset-plugin/pull/133

具体解决方案如下(部分操作可能需要root权限):

$ composer global update

失败,不得已,回退到可用旧版本。

$ composer self-update --rollback 2015-07-07_14-15-59-dbdd497

更新插件fxp/composer-asset-plugin,据说这个1.0.3版本解决了这个问题。

$ composer global require "fxp/composer-asset-plugin:1.0.3"

然后composer更新,

$ composer self-update
$ composer global update

可以正常使用了。

2、curl错误信息

当输入命令

$ sudo curl -sS https://getcomposer.org/installer | php

直接安装时,可能出现下列错误。

    curl: (56) SSL read: error:00000000:lib(0):func(0):reason(0), errno 104
    PHP Parse error:  syntax error, unexpected end of file, 
    expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or 
    ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in - on line 883

    Parse error: syntax error, unexpected end of file, expecting variable 
    (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) 
    or {$ (T_CURLY_OPEN) in - on line 883

我是这样解决的。

换一种安装方式,直接下载这个https://getcomposer.org/installer, 然后用php安装,跳过curl这个操作。

$ cd /opt/lampp
## 到 https://getcomposer.org/installer 下载installer文件。
$ sudo php <path-to-installer>/installer

3、SSL错误信息

    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

我是这样解决的。

第一步:需找验证钥匙的地址
$ 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] => 
)

在第一行看到xampp会到/opt/lampp/share/openssl/cert.pem 找验证文件。

第二步:下载最新cacert.pem
$ cd
$ wget http://curl.haxx.se/ca/cacert.pem

把文件下载到~目录下。

第三步:建立openssl到默认cert文件到连接。
$ sudo mv ~/cacert.pem /opt/lampp/share/openssl/cert.pem

注意:这个/opt/lampp/share/openssl/cert.pem 要跟上面第一步找到到地址一致。

第四步:重启xampp
$ sudo /opt/lampp/xampp restart

问题解决。

转载于:https://my.oschina.net/bubifengyun/blog/607161

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值