我如何通过模型或控制器运行shell命令。不是通过工匠的命令或$schedule。
还有我如何运行 sudo 命令?
我已经尝试了下一个选项。没有任何效果:
1:
$process = new Process('sudo /usr/bin/touch /var/www/html/Poptin test2.html');
$process->run();
// executes after the command finishes
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
阿拉伯数字:
shell_exec(escapeshellcmd('sudo /usr/bin/touch /var/www/html/Poptin test2.html));
3:
exec('sudo /usr/bin/touch /var/www/html/Poptin test2.html);
请帮忙!
刚刚在 Laravel 5.5 中测试了运行 exec 并且它可以工作。这是我尝试过的:
$test = exec('echo 123');
dd($test);
我知道您正在运行 5.2,但运行它应该没有什么不同。
我可以看到您在exec方法和shell_exec中忘记了结尾。
而不是写作
exec('sudo /usr/bin/touch /var/www/html/Poptin test2.html);
你应该写
exec('sudo /usr/bin/touch /var/www/html/Poptin test2.html');
还要确保您尝试运行的命令在直接在 shell 中运行时有效。
你所做的是正确的,但你必须这样做例如shell_exec('sudo/usr/bin/touch/var/www/html/Poptin test2.html') 试一试,在控制器中使用shell_exec还有一个不好的做法。