Ano*_*onS 10 php linux shell controller laravel
我需要从控制器执行 shell 命令,但不仅限于项目内的文件,例如。system( 'rm /var/www/html/test.html' ) 或 system( 'sudo unzip /var/www/html/test.zip' );
我调用了该函数但什么也没发生,知道如何从控制器执行外部 shell 命令,例如删除另一个目录中的一个文件吗?
system('rm /var/www/html/test.html');
//or
exec('rm /var/www/html/test.html')
Run Code Online (Sandbox Code Playgroud)
Rwd*_*Rwd 22
如果您想从 PHP 应用程序运行命令,我建议使用Symfony Process Component:
跑 composer require symfony/process
将类导入到您的文件中 use Symfony\Component\Process\Process;
执行你的命令:
$process = new Process(['rm', '/var/www/html/test.html']);
$process->run();
Run Code Online (Sandbox Code Playgroud)
如果你使用的是 Laravel,你应该可以跳过第 1 步。
或者,(如果运行 php 的进程具有正确的权限)您可以简单地使用 PHP 的unlink()函数来删除文件:
unlink('/var/www/html/test.html');
Run Code Online (Sandbox Code Playgroud)