pasar - session_start php ejemplos
php exec() no está ejecutando el comando (2)
He intentado usar exec()
con ''whoami''
para verificar si funciona y obtuve el resultado de
nt authority/system
Ahora necesito ejecutar un archivo .exe
con parámetros de php
través de la función exec()
.
Intenté esto en el símbolo del sistema y realmente ejecuta el programa con los parámetros dados. Este es el comando de ejemplo.
NOTA: el archivo exe obtiene 3 entradas (carpeta, nombre_archivo, archivo_informe_nmaee)
> ../../some_file.exe folder="C:/path_to_folder" param=1.xml report=2.xml
Pero cuando ejecuto este comando desde el archivo php
:
exec(''../../some_file.exe folder="C:/path_to_folder" param=1.xml report=2.xml'');
nada esta pasando. Esta es la primera vez que uso la función exec (), por lo que no estoy familiarizado con sus detalles. ¿Qué está mal?
Intenté usar:
-
//
lugar de/
-
escapeshellarg()
en el directorio - añadido
""
alrededor de los nombres de las carpetas del directorio
Sin suerte
Apéndice:
echo exec($command) // echos < .... why?
o
exec($command, $output);
print_r($output); // Array()
Incluso cambié el permiso del archivo para tener el control total de todos los usuarios. Si llamo al programa desde el command prompt
del command prompt
, puedo ver el ícono que aparece al lado del reloj por un segundo.
Pero la misma llamada de php
ni siquiera llamará al programa.
Editar
Incluso exec(''notepad.exe'');
no está trabajando. ¿Algo hay que hacer con las configuraciones de php
tal vez?
También puede intentar dar la ruta completa al binario que intenta ejecutar. Eso resolvió mi problema al intentar usar ImageMagick
.
Ya dije que era nuevo en la función exec()
. Después de hacer más excavaciones, encontré 2>&1
que debe agregarse al final del comando en exec()
.
Gracias @mattosmat
por señalarlo en los comentarios también. No intenté esto de una vez porque dijiste que es un comando de Linux, estoy en Windows.
Entonces, lo que he descubierto, el comando se está ejecutando en el back-end. Es por eso que no pude verlo en funcionamiento, lo que esperaba que sucediera.
Para todos ustedes que tuvieron un problema similar, mi consejo es usar ese comando. Señalará todos los errores y también le informará información / detalles sobre la ejecución.
exec(''some_command 2>&1'', $output);
print_r($output); // to see the response to your command
Gracias por toda la ayuda chicos, lo aprecio;)