2016-08-17 54 views
0

当PHP在我们的服务器(Centos 5.11)上更新为> v5.3.2后,我想像我在其他环境中那样安装Composer。作曲家和PHP版本,忽略Composer安装的PHP版本,一个坏主意?

Composer docs指出“Composer需要运行PHP 5.3.2+”。我有PHP 5.4.45。尽管如此,试图

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

当它退出与警告

PHP Warning: file_get_contents(https://getcomposer.org/versions): failed to open stream: Connection timed out in - on line 762 
PHP Warning: Invalid argument supplied for foreach() in - on line 508 
None of the 0 stable version(s) of Composer matches your PHP version (5.4.45/ID: 50445) 

我发现this answer与安装作曲时忽略系统要求交易。

这是可以做到的事情吗?或者这是一件有点可怕/没有想到的事情吗?还有,我可以使用Composer的其他版本(“不稳定”或其他)吗?或者也许PHP应该再次更新 - > 5.6.x?

感谢您的任何提示和帮助!

+0

这并不回答你的问题,但是,你应该进一步升级PHP。 [PHP 5.4在2015年9月停止接收安全更新,PHP 5.5在2016年7月停止接收安全更新。PHP 5.6和7.0将在2018年底前收到安全更新。](https://secure.php.net/supported -versions.php) – Chris

+0

看起来像是ipv6问题。禁用ipv6后,安装程序被迫使用ipv4进行地址解析,并且一切正常。 – legacyofleo

回答

2

这不是你的PHP版本,而是一个连接问题。

你有3条消息(2条警告和一位作曲家的信息),它告诉你整个故事。 (第二次警告)它没有一个列表来迭代并匹配Composer的版本适合你的PHP版本(第二次警告)由于连接超时,作曲家的安装程序无法获取作曲家的列表版本,这暗示(第3条消息)没有发现任何作曲家的版本。

根本问题是第一个警告。此行

file_get_contents(https://getcomposer.org/versions); 

没有工作。这是你的问题。

很难根据提供的信息告诉你确切的解决方案。

+0

确实如此。谢谢你指出。然而这似乎很难做到,因为像example.com这样的“curling”确实会返回预期的结果,尽管速度很慢。或许composer.org有问题?或蜷缩提前超时? – Kyrre

+0

它可能是SSL的东西。您是否尝试在测试文件中只执行'file_get_contents(https://getcomposer.org/versions);'? –

+0

是的,它确实会返回相同的数据,你可以在这里看到(https://getcomposer.org/versions)。虽然我测试它的前几次,但它没有奏效,声称“没有这样的文件或目录”。但现在是一致的。有些东西似乎很腥。它可能是一个语法错误?围绕url参数没有引号。但这可能是终端输出的结果。我必须深入挖掘 – Kyrre

0

我从https更改为http,

curl -sS http://getcomposer.org/installer | php 

然后能够安装

0

我认为这可能是代理问题。删除https_proxyhttp_proxy环境变量为我工作(Windows 10)。然后安装它,将代理设置为空白。它应该像我一样工作。