我正在使用shell_exec命令在后台运行Artisan命令。但当我在生产服务器中运行shell_exec时。
路线代码如下

Route::get('/test/exec', function () {
    echo shell_exec('php ../artisan migrate:status 2>&1; echo $?');
});

它给我的错误如下。
PHP Fatal error: Cannot redeclare class Illuminate\Support\Traits\Macroable in /var/www/production/bootstrap/cache/compiled.php on line 6109 255

但是当我在本地运行相同的命令时,我得到了输出。
拉韦尔版本-5.1.46
php版本-php 5.5.9
操作系统版本-ubuntu
14.04年
这两台服务器都是相同的。哪里出了问题。拜托,有人帮我。

最佳答案

对于此错误,请尝试运行以下命令:

php artisan clear-compiled
php artisan optimize

这将重新生成compiled.php文件。
至于在代码中执行Artisan命令,有比使用shell_exec-for example using Laravel build in support for programmatically executing commands更好的方法。

10-04 22:55
查看更多