2016-08-17 53 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)。然後安裝它,將代理設置爲空白。它應該像我一樣工作。