【发布时间】:2017-02-12 00:34:48
【问题描述】:
我正在尝试使用 Symfony 进程组件运行 composer install,如下所示:
if ($process->isSuccessful()) {
$process = new Process("cd {$directory} && composer install");
$process->run(function ($type, $buffer) {
if (Process::ERR === $type) {
Log::info($buffer);
} else {
Log::info($buffer);
}
});
}
它指向 5.6.25 的 PHP 版本,这看起来很奇怪,因为我 100% 确定我使用的是 PHP 7。在 Laravel 中运行 phpinfo() 给了我:
PHP 版本 7.0.13
从我的终端运行php -v 给了我:
PHP 7.0.13 (cli)(构建时间:2016 年 11 月 15 日 23:52:36)(NTS)版权所有 (c) 1997-2016 PHP Group Zend Engine v3.0.0,版权所有 (c) 1998-2016 Zend 技术
这是我从 Symfony 进程组件写入的日志文件中拖尾的输出:
Problem 1
- Installation request for phpunit/php-code-coverage 5.0.0 -> satisfiable by phpunit/php-code-coverage[5.0.0].
- phpunit/php-code-coverage 5.0.0 requires php ^7.0 -> your PHP version (5.6.25) does not satisfy that requirement.
Problem 2
- Installation request for phpunit/phpunit 6.0.6 -> satisfiable by phpunit/phpunit[6.0.6].
- phpunit/phpunit 6.0.6 requires php ^7.0 -> your PHP version (5.6.25) does not satisfy that requirement.
Problem 3
- Installation request for phpunit/phpunit-mock-objects 4.0.0 -> satisfiable by phpunit/phpunit-mock-objects[4.0.0].
- phpunit/phpunit-mock-objects 4.0.0 requires php ^7.0 -> your PHP version (5.6.25) does not satisfy that requirement.
有人知道为什么它指向我没有使用的 PHP 版本吗?顺便说一句,我正在 macOS 上运行它。
最奇怪的是,即使我在 Symfony 进程中使用php -v,它也会显示正确的版本,所以看起来 composer 链接到了错误的 PHP 版本?我可以通过 composer 在本地安装它,只需通过我自己的终端要求它即可。
如果有人需要更多信息,我非常愿意尝试一些事情。告诉我。
【问题讨论】:
-
您的机器上是否安装了多个版本的php?试试
which php确认