我有一个可执行的外壳文件,可以从CLI命令成功运行它,但是在从路由运行此artisan命令时遇到了一些问题。
当我从终端运行它时,得到了预期的输出消息,并且文件被复制,但是从路由运行它既未在日志中显示任何内容,也未复制文件“ cp .env .env.test”。
我正在使用laravel 5.6,并在Mac的本地环境中尝试使用此功能。
这是外壳文件(shell.sh):
#!/bin/sh
php artisan cache:clear
cp .env .env.test
这是工匠司令部
protected $signature = 'shell:run';
protected $description = 'Run sheel file';
public function __construct()
{
parent::__construct();
}
public function handle()
{
$output = shell_exec('./shell.sh');
$this->info($output);
}
路线:
Route::get('/shell', function () {
Artisan::call('shell:run');
});