Laravel 5.1:更改 Artisan Facade 使用的 PHP 版本
Laravel 5.1: Changing PHP version used by Artisan Facade
我有一个应用程序可以通过控制器 运行 Artisan 命令:
Artisan::call('myCommand');
问题是我的生产服务器的终端 PHP 版本没有跟上速度,所以他们需要为我的 运行 composer 和 artisan 命令安装一个修复程序(我现在使用 /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 代码 :)
谢谢
当您通过 Artisan::call() 运行 命令时,您并没有创建单独的进程。命令代码使用处理请求的相同进程执行,并使用相同的 PHP 版本。通过 Artisan facade.
调用它时无法使用另一个 PHP 版本。
为了使用不同的 PHP 版本,您需要 运行 在单独的进程中执行命令。您可以为此使用 Symfony 的 Process class - 它与 Laravel 捆绑在一起,因此无需安装任何东西。
这应该适合你:
$process = new Process('/usr/bin/php55 artisan command:name');
$process->run();
我有一个应用程序可以通过控制器 运行 Artisan 命令:
Artisan::call('myCommand');
问题是我的生产服务器的终端 PHP 版本没有跟上速度,所以他们需要为我的 运行 composer 和 artisan 命令安装一个修复程序(我现在使用 /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 代码 :)
谢谢
当您通过 Artisan::call() 运行 命令时,您并没有创建单独的进程。命令代码使用处理请求的相同进程执行,并使用相同的 PHP 版本。通过 Artisan facade.
调用它时无法使用另一个 PHP 版本。为了使用不同的 PHP 版本,您需要 运行 在单独的进程中执行命令。您可以为此使用 Symfony 的 Process class - 它与 Laravel 捆绑在一起,因此无需安装任何东西。
这应该适合你:
$process = new Process('/usr/bin/php55 artisan command:name');
$process->run();