En esta pregunta, nos encontramos con un desarrollador de PHP que intenta ejecutar un script bash desde PHP usando shell_exec. La sintaxis utilizada es:
$output = shell_exec("./script.sh var1 var2");
Sin embargo, el script no se ejecuta cuando se llama a este comando.
Para depurar este problema, es importante identificar la causa del error. Como el script se ejecuta correctamente cuando se ejecuta a través de la línea de comandos usando ./script.sh var1 var2, el problema probablemente radica en el código PHP.
Un problema común que puede causar fallas en la ejecución del script son los permisos o rutas de directorio incorrectos . Los scripts PHP a menudo requieren que se configure el directorio de trabajo correcto antes de ejecutar comandos externos. Para resolver esto, el código puede especificar el directorio correcto usando chdir antes de llamar a shell_exec.
El siguiente fragmento soluciona este problema:
$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);
En este ejemplo, nosotros:
Al asegurarse de que esté en su lugar el directorio correcto, este código modificado debería ejecutar con éxito el script bash desde PHP.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3