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版本?的主要内容,如果未能解决你的问题,请参考以下文章