Estoy intentando usar un script PHP para llamar a un script shell e imprimir el resultado en el navegador.
He confirmado que todas las configuraciones de permisos están establecidas correctamente, tanto el PHP como el script bash tienen control total.
Si ejecuto el script de shell en el actualdirectorio (el mismo directorio que el archivo PHP) entonces funciona bien. Pero si intento ejecutar el script de shell desde /some/other/directory/shell.script, entonces no funciona. ¿Por qué esto es tan?
He intentado hacer chdir () al otro directorio, pero después de ejecutar un getcwd (), nunca cambió los directorios.
También he probado el comando exec por sí mismo y no funciona.
<?php error_reporting(E_ALL); ini_set("display_errors",1);
echo "<h1>EDS Count Report</h1><p>";
$output=shell_exec("cd /app/script/catalog/ && ./EDScount_report.sh");
echo $output;
?>
contenidos del script SHELL:
#!/bin/bash
echo "this is a test!"
Respuestas
1 para la respuesta № 1Prueba esto por favor
<?php
$output=shell_exec("sh /path/to/otherdirectory/shellscript.sh");
echo $output;
?>
Si está seguro de que puede acceder a ese dicertorio, también puede usar esto:
<?php
$output=shell_exec("cd /path/to/otherdirectory/ && ./shellscript.sh");
echo $output;
?>