composer如何检查php版本?

Posted

技术标签:

【中文标题】composer如何检查php版本?【英文标题】:How composer check php version? 【发布时间】:2016-01-08 22:20:24 【问题描述】:

我只是想知道作曲家在检查需求时如何检查要使用的 php。我使用 MacOS 和终端类型:

composer require phpunit/phpunit

结果是这样的:

Problem 1
- phpunit/phpunit 5.0.4 requires php >=5.6 -> your PHP version (5.5.27) or "config.platform.php" value does not satisfy that requirement....

当我检查 php 版本时:

php -v

结果是:

PHP 5.6.10 (cli)(构建时间:2015 年 6 月 12 日 14:08:56)版权所有 (c) 1997-2015 PHP Group Zend Engine v2.6.0,版权所有 (c) 1998-2015 Zend 技术 使用 Xdebug v2.2.5,版权所有 (c) 2002-2014,由 Derick Rethans 提供

这是:

which php

php:别名为 /Applications/MAMP/bin/php/php5.6.10/bin/php

谁能解释一下。提前致谢!

【问题讨论】:

phpinfo() 对您的 php 版本有何评价? 5.6.10 - 我使用 Mamp 和 5.6.10 默认版本。 我想说你只是安装了多个 PHP 版本。 【参考方案1】:

如果您指定调试详细程度-vvv,Composer 可以告诉您它正在运行的 PHP 版本。

我喜欢使用about 命令运行它,因为输出相对较短。

composer -vvv about

示例输出:

... 在 Darwin / 18.6.0 上使用 PHP 7.3.5 运行 1.8.5 (2019-04-09 17:46:47) ...

编辑: 这比我预期的更感兴趣,所以这里有一个输出更清晰的版本:

composer -vvv about 2>&1 | grep "PHP"

【讨论】:

在 Centos7 上 php -v 和 phpver 都显示 7.4 但是安装 Craft,Composer 是用 php5 运行的。任何想法为什么?我猜在某处设置了一个作曲家环境变量。 @samerivertwice:“/usr/bin/env php -v”显示了什么?【参考方案2】:

在 MacOs X 上,php 的默认安装位于 /usr/bin。如果您升级 php,它很可能会安装在其他地方(例如 /usr/local/php5),或者如果您使用 MAMP 或其他东西,它将安装在其他地方。只需确保遍历 PATH 时第一次出现的 php 与您的网络服务器使用的版本相同。 (就像在路径中的 /usr/bin 之前有 /usr/local/php5/bin )。这将解决你的问题。

【讨论】:

如何配置路径?您必须访问哪个文件?【参考方案3】:

如果您使用包安装方法,例如 Ubuntu 上的 apt-get,可执行文件可能会包含一个“shebang”,指向应该用于运行该特定作曲家文件的特定 php。

使用命令composer 时,cli 将首先解析要使用的二进制文件。通过运行which composer,您可以找到二进制文件。

$ which composer
/usr/bin/composer

一旦知道这一点,您就可以打开文件,例如使用 vim:vim /usr/bin/composer(通常需要超级用户访问权限才能修改二进制文件,因此您不应该搞砸作曲家)。

composer 二进制文件的第一行应该是一个 shebang,可能看起来像 #!/usr/bin/php,它将指示 composer 可执行文件应该如何运行。

然后您可以直接调用该 php 二进制文件来验证其版本:

/usr/bin/php -v

【讨论】:

您好,我遇到了一些关于 PHP 版本的问题,由于版本不同,我无法使用包,有没有办法使用此位置或更好的方式更改版本,如何告诉作曲家使用其他地方的版本?例如安装了 7.4 的那个。谢谢!!编辑:我使用 Laravel 8

以上是关于composer如何检查php版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何验证 Composer 版本约束支持所需的版本?

Composer基本安装步骤

php composer如何知道php版本?

如何安装 Composer

如何安装 Composer

如何在composer之前使用相应的php版本名称