2017-02-12 51 views
2

我試圖與Symfony的過程組件這樣運行了composer installSymfony的流程組件指向錯誤的PHP版本

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); 
     } 
    }); 
} 

它指向的25年5月6日一個PHP版本,看起來真的很奇怪,因爲我100 %確定我使用PHP 7.運行phpinfo()函數裏面Laravel給我:

PHP版本7.0.13

運行php -v從我的終端給我:

PHP 7.0.13(CLI)(建:2016年11月15日23點52分36秒)(NTS)版權所有(C) 1997-2016的PHP集團Zend引擎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,它顯示了正確的版本,所以它看起來作曲家鏈接到錯誤的PHP版本?我只需要通過我自己的終端就可以通過作曲家在本地安裝它。

如果有人需要更多的信息,我更願意嘗試一些事情。讓我知道。

+0

是否有安裝在您的機器PHP的多個版本?嘗試'哪個php'確認 – gmsantos

回答

0

發生這種情況,因爲執行symfony的流程組件的用戶是比這會導致完全不同的$PATH不具備,我已經設置了常用的全局我的普通用戶不同。

如果你想在這讀了,你可以看看這個討論:

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

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); 
     } 
    }); 
} 
+0

這個工作完美,但我仍然非常警惕潛在的問題。感謝您的回覆,但我希望有人仍然可以解決這個問題,如果可能的話:) –