第九章 部分异常的处理
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
问题解决。