GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo ejecutar comandos de shell externos desde el controlador laravel?

Si desea ejecutar comandos desde su aplicación PHP, le recomendaría usar el componente de proceso de Symfony:

  1. Ejecutar composer require symfony/process

  2. Importa la clase a tu archivo con use Symfony\Component\Process\Process;

  3. Ejecute su comando:

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

Si está utilizando Laravel, debería poder omitir el Paso 1.

Alternativamente, (si el proceso que ejecuta php tiene los permisos correctos) simplemente puede usar la función unlink() de PHP para eliminar el archivo:

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

Haría esto con lo que el marco ya proporciona:

1) Primero genera una clase de comando:

php artisan make:command TestClean

Esto generará una clase de comando en App\Console\Commands

Luego, dentro del método handle de esa clase de comando, escriba:

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

Dale a tu comando un nombre y una descripción y ejecuta:

php artisan list

Solo para confirmar que su comando está en la lista.

2) En su controlador, importe Fachada artesanal.

use Artisan;

3) En su controlador, escriba lo siguiente:

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

Consulte los documentos para otros usos:https://laravel.com/docs/5.7/artisan#generating-commands


Linux
  1. ¿Cómo eliminar las primeras/últimas líneas 'n' de la salida del comando en Shell?

  2. ¿El punto del comando externo `cd`?

  3. Ejecutar comandos de Shell desde el programa que se ejecuta en WINE

  4. ¿Cómo puedo ejecutar código PHP desde la línea de comandos?

  5. ¿Cómo ejecutar código en el shell de Django mediante un script de python externo?

Cómo acceder al shell o ejecutar comandos externos desde dentro de Vim

Cómo ejecutar un comando de Shell con Python

Cómo ejecutar automáticamente secuencias de comandos y comandos de inicio de Linux

Cómo ejecutar comandos de Shell a través del servidor HTTP

Cómo quitar un comando del historial en Linux

¿Cómo ejecutar un comando en un script de Shell?