Laravel 5.1:更改Artisan Facade使用的PHP版本

时间:2015-08-10 10:18:53

标签: php laravel laravel-5 laravel-5.1 artisan

我有一个应用程序将通过控制器运行Artisan命令:

Artisan::call('myCommand');

问题是我的生产服务器没有最快的终端PHP版本,所以他们需要修复我运行的作曲家和工匠命令(我现在使用/ usr / bin / php55)。

现在,当我尝试通过我的控制器调用Artisan命令时,我收到此错误:

Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in on line 54

此错误是由于PHP版本错误,这与我之前在生产服务器上遇到的问题一致。

有谁知道如何更改Artisan Facade使用的PHP版本?最好不要更改任何核心Laravel代码:)

由于

1 个答案:

答案 0 :(得分:2)

当您通过 Artisan :: call()运行命令时,您不会创建单独的进程。命令代码使用处理请求的相同进程执行,并使用相同的PHP版本。通过 Artisan Facade调用它时,无法使用其他PHP版本。

要使用不同的PHP版本,您需要在单独的进程中运行该命令。您可以使用Symfony的流程类 - 它与Laravel捆绑在一起,因此无需安装任何内容。

这应该适合你:

$process = new Process('/usr/bin/php55 artisan command:name');
$process->run();