2016-09-12 169 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我认为你会遇到更多麻烦。