GNU/Linux >> Znalost Linux >  >> Linux

Jak provádět externí příkazy shellu z ovladače laravel?

Pokud chcete spouštět příkazy z vaší PHP aplikace, doporučil bych použít Symfony Process Component:

  1. Spusťte composer require symfony/process

  2. Importujte třídu do svého souboru pomocí use Symfony\Component\Process\Process;

  3. Proveďte příkaz:

    $process = new Process(['rm', '/var/www/html/test.html']);
    
    $process->run();
    

Pokud používáte Laravel, měli byste být schopni přeskočit krok 1.

Případně (pokud má proces, na kterém běží php správná oprávnění), můžete jednoduše použít funkci PHP unlink() k odstranění souboru:

unlink('/var/www/html/test.html');
 

Udělal bych to s tím, co rámec již poskytuje:

1) Nejprve vygenerujte třídu příkazů:

php artisan make:command TestClean

Tím se vygeneruje třída příkazů v App\Console\Commands

Potom do metody handle této třídy příkazů napište:

@unlink('/var/www/html/test.html');

Zadejte název a popis příkazu a spusťte:

php artisan list

Jen pro potvrzení, že je váš příkaz uveden.

2) Do ovladače importujte fasádu Artisan.

use Artisan;

3) Do ovladače pak napište následující:

Artisan::call('test:clean');

Další použití naleznete v dokumentaci:https://laravel.com/docs/5.7/artisan#generating-commands


Linux
  1. Jak provést příkaz v prostředí Shell bez jeho uložení do historie? [Tipy pro Linux]

  2. Pointa externího příkazu `cd`?

  3. Jak spouštět příkazy v Gnuplot pomocí skriptu Shell?

  1. Jak odstranit první/poslední „n“ řádky z výstupu příkazu v prostředí Shell?

  2. Jak zkontrolovat, zda existuje příkaz shellu z PHP

  3. Jak spustit kód v prostředí Django pomocí externího skriptu python?

  1. Jak obnovit práci na pozadí z předchozího shellu?

  2. Jak namapovat jeden příkaz Vim k provádění příkazů Bash založených na OS?

  3. 5 způsobů, jak spouštět příkazy UNIX / Linux (a skripty Shell) na pozadí