我正在尝试在具有RHEL6的服务器上使用composer.phar。
安装细节: curl / 7.19.7(x86_64-redhat-linux-gnu)libcurl / 7.19.7 NSS / 3.14.3.0 zlib / 1.2.3 libidn / 1.18 libssh2 / 1.4.2 PHP 5.4.16 Zend Engine v2.4.0,版权所有(c)1998-2013 Zend Technologies
我的composer.json看起来像这样:
{
"name" : "zendframework/skeleton-application",
"description" : "Skeleton Application for ZF2",
"keywords" : [
"framework",
"zf2"
],
"homepage" : "https://something.com/",
"require" : {
"php" : ">=5.3.3",
"zendframework/zendframework" : "2.*"
}
}
运行php composer.phar update会导致:
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing zendframework/zendframework (2.2.5)
Downloading: 100%
Downloading: 100%
Downloading: 100%
[Composer\Downloader\TransportException]
The "https://api.github.com/repos/zendframework/zf2/zipball/4a7cf6a4cf791244e14aa0ca49d1f06916b63202" file could not be downloaded: SSL: Connection reset by peer
Failed to enable crypto
failed to open stream: operation failed
下一步是尝试卷曲:
$ curl -vvv "https://api.github.com/repos/zendframework/zf2/zipball/4a7cf6a4cf791244e14aa0ca49d1f06916b63202"
* About to connect() to api.github.com port 443 (#0)
* Trying 192.30.252.139... connected
* Connected to api.github.com (192.30.252.139) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* NSS error -5961
* Closing connection #0
* SSL connect error
curl: (35) SSL connect error
强制使用SSLV3:
curl -3 -vvv "https://api.github.com/repos/zendframework/zf2/zipball/4a7cf6a4cf791244e14aa0ca49d1f06916b63202"
* About to connect() to api.github.com port 443 (#0)
* Trying 192.30.252.138... connected
* Connected to api.github.com (192.30.252.138) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using SSL_RSA_WITH_RC4_128_SHA
* Server certificate:
* subject: CN=*.github.com,O="GitHub, Inc.",L=San Francisco,ST=California,C=US
* start date: Apr 30 00:00:00 2012 GMT
* expire date: Jul 09 12:00:00 2014 GMT
* common name: *.github.com
* issuer: CN=DigiCert High Assurance CA-3,OU=www.digicert.com,O=DigiCert Inc,C=US
> GET /repos/zendframework/zf2/zipball/4a7cf6a4cf791244e14aa0ca49d1f06916b63202 HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: api.github.com
有没有人遇到过composer.phar这个问题,并克服它(并将分享他/她的解决方案:-))?我知道作曲家使用PHP的file_get_contents()。
答案 0 :(得分:2)
不是最好的解决方案,但为了时间,我解决了这个问题。我从错误输出中获取了URL:
https://api.github.com/repos/zendframework/zf2/zipball/4a7cf6a4cf791244e14aa0ca49d1f06916b63202
我将其插入基于Windows的工作站上的浏览器中。在RHEL6框中,在使用composer的用户的主目录中,有一个.composer目录。我将下载的zip文件放在这个目录中:
/home/composeruser/.composer/cache/files/zendframework/zendframework
然后我必须将zip文件重命名为url中的调用(添加zip扩展名):
/home/composeruser/.composer/cache/files/zendframework/zendframework/4a7cf6a4cf791244e14aa0ca49d1f06916b63202.zip
下一次运行作曲家时,它使用了缓存文件,然后继续前进。如果有人想出办法避免使用NSS预先缓存RHEL6盒子上的文件,请告诉我。