Symfony进程组件指向错误的PHP版本

时间:2017-02-12 00:34:48

标签: php symfony process

我正在尝试使用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 Technologies

这是我从我的日志文件中拖出的输出,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,它也显示正确的版本,因此似乎作曲家链接到错误的PHP版本?我可以通过我自己的终端通过编辑器在本地安装它。

如果有人需要更多信息,我非常愿意尝试一些事情。让我知道。

2 个答案:

答案 0 :(得分:1)

不确定为什么会发生这种情况,但您可以使用--ignore-platform-reqs option跳过作曲家中的平台必备条件。

if ($process->isSuccessful()) {
    $process = new Process("cd {$directory} && composer install --ignore-platform-reqs");

    $process->run(function ($type, $buffer) {
        if (Process::ERR === $type) {
            Log::info($buffer);
        } else {
            Log::info($buffer);
        }
    });
}

答案 1 :(得分:0)

这是因为执行symfony进程组件的用户与普通用户不同,导致完全不同的$PATH没有我设置的常用全局变量。

如果您想阅读此内容,可以查看以下讨论:

https://github.com/symfony/symfony/issues/21591