2016-09-12 202 views
1

我正在使用Symfony 2.8.9網站,但它需要PHP 5.5或更高版本。 Plesk中12.5我已設置爲使用5.6這是很好的服務器上,但是當我通過ssh運行composer install命令時,得到以下信息:PHP版本衝突

  • 的symfony/symfony的V2.7.0需要PHP> = 5.3 .9 - >您的PHP版本(5.3.3)不符合該要求。

所以我輸入php -v和receieve以下消息:

PHP 5.3.3(CLI)(建:2016年8月11日二十時33分53秒)

我我不確定它爲什麼在命令行上說5.3.3,即使它在Plesk中設置爲5.6,我怎麼能解決這個問題?我無法運行我的作曲家更新,甚至嘗試清除緩存拋出的錯誤,我確定這些錯誤屬於過時的PHP版本。

+2

CLI和網絡服務器可能使用不同版本的PHP。爲了確保您使用的是相同版本的PHP,請嘗試在web服務器中使用'phpinfo()'並查看'php.in'的路徑,並遵循相同的過程或使用'php -i | grep'php.ini' '在SSH中查看在命令行中加載的'php.ini'。在你的情況下,它們可能指向不同的'php.ini'。 – Samundra

+0

它使用了錯誤的,我知道 - 但我不知道如何使它在Plesk中指定。 –

+0

如果你知道你有'php5.6',並且你知道它的可執行文件的完整路徑,那麼你可以嘗試'/path/to/php5.6 composer update',但我不確定這是否可行。 – Samundra

回答

1

服務器上有更多版本的PHP嗎?可能是網絡服務器使用一個版本,而CLI使用另一個版本。

嘗試使用命令which php來查看調用的內容。

+0

如果服務器是基於Ubuntu的話,更好的命令是使用'sudo update-alternatives --config php'。它會列出安裝的PHP的多個版本,我們可以選擇一個我們希望設置爲默認的版本。 – Samundra

+0

雖然我不想更新任何東西。我沒有這方面的許可,我只是想確保命令行正在實施5.6版本 –

1

由於您有一臺plesk服務器,您必須自己使用正確的php-cli二進制文件。

安裝的PHP版本位於/opt/plesk/php你的情況: /opt/plesk/php/5.6/bin/php

如果您是該服務器的根目錄,你可以幫自己一個簡單的符號鏈接: ln -s /opt/plesk/php/5.6/bin/php /usr/local/bin/php-5.6

那麼你可以使用php-5.6 composer.phar

如果不是,則必須使用完整路徑,或向您的.bashrc添加別名。

另一種方法是將--ignore-platform-reqs添加到作曲家調用中。在大多數情況下,它將工作(PHP的要求被忽略) - 如果作曲家自己使用某些5.6特定的語法,這當然不會起作用。

編輯:我的plesk在Ubuntu 16.04上運行 - 所以系統php是5.5.9已經 - 這使得--ignore-platform-reqs技巧非常有用。 5.3.3我認爲你會遇到更多麻煩。